Share via


/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 199711Lmakro 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

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Tambahkan /Zc:__cplusplus atau /Zc:__cplusplus- ke panel Opsi tambahan: .

Baca juga

/Zc (Kesuaian)
/std (Tentukan versi standar bahasa)
Makro yang telah ditentukan sebelumnya