Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menggunakan std::min/max dengan #define NOMINMAX?

Bagaimana Menggunakan std::min/max dengan #define NOMINMAX?

DDD
DDDasal
2024-11-12 07:46:02837semak imbas

How to Use std::min/max with #define NOMINMAX?

Cara Menggunakan std::min/max dengan #define NOMINMAX

Untuk menggunakan fungsi perpustakaan standard std::max dan std: :min semasa mentakrifkan makro NOMINMAX, ikut langkah berikut:

1. Tentukan NOMINMAX dalam Semua Fail Di Mana std::min/max Digunakan

Untuk memastikan makro berkuat kuasa, anda mesti mentakrifkan #define NOMINMAX dalam semua fail yang anda akan gunakan std::max dan std: :min. Ini menghalang perlanggaran dengan fungsi maks dan min terbina dalam Windows.

2. Gunakan Tanda Kurung untuk Memintas Pengembangan Makro

NOMINMAX mentakrifkan std::min dan std::max sebagai makro. Jika anda menghadapi ralat yang disebutkan di atas, ini bermakna prapemproses mentafsir fungsi ini sebagai makro. Untuk memintas ini, bungkus nama fungsi dalam kurungan:

(std::min)(x, y);  // For std::min
(std::max)(x, y);  // For std::max

Dengan melampirkan nama fungsi dalam kurungan, prapemproses akan menganggapnya sebagai panggilan fungsi dan bukannya pengembangan makro.

Nota: Penyelesaian ini agak menyusahkan, kerana ia memerlukan tanda kurungan std::min dan std::max setiap kali anda menggunakannya. Walau bagaimanapun, ini adalah penyelesaian untuk isu khusus ini.

Atas ialah kandungan terperinci Bagaimana Menggunakan std::min/max dengan #define NOMINMAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn