/Zc:__cplusplus
(Aktifkan makro yang diperbarui __cplusplus
)
Opsi /Zc:__cplusplus
kompilator memungkinkan makro praprosesor __cplusplus
melaporkan nilai yang diperbarui untuk dukungan standar bahasa C++ terbaru. Secara default, Visual Studio selalu mengembalikan nilai 199711L
untuk __cplusplus
makro praprosesor.
Sintaks
/Zc:__cplusplus
[-
]
Keterangan
Makro __cplusplus
praprosesor umumnya digunakan untuk melaporkan dukungan untuk versi tertentu dari standar C++. Karena banyak kode yang ada tampaknya bergantung pada nilai pencocokan 199711L
makro ini , pengkompilasi tidak mengubah nilai makro kecuali Anda secara eksplisit ikut serta dengan menggunakan /Zc:__cplusplus
opsi pengkompilasi. Opsi /Zc:__cplusplus
ini tersedia mulai di Visual Studio 2017 versi 15.7, dan nonaktif secara default. Di versi Visual Studio yang lebih lama, dan secara default, atau jika /Zc:__cplusplus-
ditentukan, Visual Studio mengembalikan nilai 199711L
untuk __cplusplus
makro praprosesor. Opsi /permissive-
tidak mengaktifkan /Zc:__cplusplus
.
/Zc:__cplusplus
Saat opsi diaktifkan, nilai yang dilaporkan oleh __cplusplus
makro bergantung pada /std
pengaturan opsi versi. Tabel ini memperlihatkan kemungkinan nilai untuk makro:
/Zc:__cplusplus opsi |
/std opsi |
__cplusplus nilai |
---|---|---|
Zc:__cplusplus |
/std:c++14 (default) |
201402L |
Zc:__cplusplus |
/std:c++17 |
201703L |
Zc:__cplusplus |
/std:c++20 |
202002L |
Zc:__cplusplus |
/std:c++latest |
lihat teks |
Zc:__cplusplus- (dinonaktifkan) |
Nilai apa pun | 199711L |
Tidak ditentukan | Nilai apa pun | 199711L |
Pengkompilasi tidak mendukung opsi standar untuk C++98, C++03, atau C++11. Opsi /std:c++20
ini tersedia mulai dari Visual Studio 2019 versi 16.11. Nilai __cplusplus
dengan /std:c++latest
opsi tergantung pada versi Visual Studio. Ini selalu setidaknya satu lebih tinggi dari nilai standar tertinggi yang didukung __cplusplus
yang didukung oleh versi Visual Studio Anda.
Untuk deteksi perubahan yang lebih halus pada toolset kompilator, gunakan _MSC_VER
makro yang telah ditentukan sebelumnya. Nilai makro bawaan ini bertahap untuk setiap pembaruan toolset di Visual Studio 2017 dan versi yang lebih baru. Makro _MSVC_LANG
yang telah ditentukan sebelumnya melaporkan versi standar apakah /Zc:__cplusplus
opsi diaktifkan atau dinonaktifkan. Ketika /Zc:__cplusplus
diaktifkan, __cplusplus
memiliki nilai yang sama dengan _MSVC_LANG
.
Untuk mengatur opsi pengkompilasi ini di Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Tambahkan
/Zc:__cplusplus
atau/Zc:__cplusplus-
ke panel Opsi tambahan: .
Lihat juga
/Zc
(Kesuaian)
/std
(Tentukan versi standar bahasa)
Makro yang telah ditentukan sebelumnya