Bagikan melalui


/Zc (Kesuaian)

/Zc Gunakan opsi pengkompilasi untuk menentukan perilaku pengkompilasi standar atau khusus Microsoft.

Sintaks

/Zc:opsi{,opsi ...}

Anda dapat mengatur beberapa /Zc opsi yang dipisahkan oleh koma dalam satu /Zc opsi pengkompilasi. /Zc Jika opsi diaktifkan dan dinonaktifkan dalam perintah yang sama, opsi yang muncul terakhir digunakan.

Keterangan

Ketika Visual Studio telah menerapkan ekstensi ke C atau C++ yang tidak kompatibel dengan standar, Anda dapat menggunakan /Zc opsi kesuaian untuk menentukan perilaku standar atau khusus Microsoft. Untuk beberapa opsi, perilaku khusus Microsoft adalah default, untuk mencegah perubahan pemutusan skala besar pada kode yang ada. Dalam kasus lain, defaultnya adalah perilaku standar, di mana peningkatan keamanan, performa, atau kompatibilitas melebihi biaya perubahan yang melanggar. Pengaturan default setiap opsi kesamaan dapat berubah dalam versi Visual Studio yang lebih baru. Untuk informasi selengkapnya tentang setiap opsi kesamaan, lihat artikel untuk opsi tertentu. Opsi /permissive- kompilator secara implisit mengatur opsi kesuaian yang tidak diatur secara default ke pengaturan yang sesuai.

Berikut adalah /Zc opsi pengkompilasi:

Opsi Perilaku
/Zc:__cplusplus[-] Aktifkan __cplusplus makro untuk melaporkan standar yang didukung. Nonaktif secara default.
/Zc:__STDC__ Aktifkan __STDC__ makro untuk melaporkan standar C didukung. Nonaktif secara default.
/Zc:alignedNew[-] Aktifkan alokasi dinamis C++17 yang terlalu selaras. Nonaktif secara default kecuali /std:c++17 atau yang lebih baru ditentukan.
/Zc:auto[-] Terlaksanakan arti Standar C++ baru untuk auto. Aktif secara default.
/Zc:char8_t[-] Aktifkan atau nonaktifkan dukungan literal asli u8 C++20 sebagai const char8_t. Nonaktif secara default kecuali /std:c++20 atau yang lebih baru ditentukan.
/Zc:checkGwOdr[-] Terapkan pelanggaran ODR C++ Standar di bawah /Gw.
/Zc:enumTypes[-] Aktifkan aturan C++ Standar untuk enum pengurangan jenis. Nonaktif secara default.
/Zc:externC[-] Menerapkan aturan C++ Standar untuk extern "C" fungsi. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:externConstexpr[-] Aktifkan tautan eksternal untuk constexpr variabel. Nonaktif secara default.
/Zc:forScope[-] Menerapkan aturan cakupan C++ for Standar. Aktif secara default.
/Zc:gotoScope[-] Menerapkan aturan C++ goto Standar sekeliling inisialisasi variabel lokal. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:hiddenFriend[-] Menerapkan aturan teman tersembunyi C++ Standar. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:implicitNoexcept[-] Aktifkan implisit noexcept pada fungsi yang diperlukan. Aktif secara default.
/Zc:inline[-] Hapus fungsi atau data yang tidak direferensikan jika COMDAT atau hanya memiliki tautan internal. Nonaktif secara default.
/Zc:lambda[-] Aktifkan prosesor lambda baru untuk pemeriksaan sindikat mode kesesuaian dalam lambda generik. Nonaktif secara default kecuali /std:c++20 atau yang lebih baru ditentukan.
/Zc:noexceptTypes[-] Menerapkan aturan C++17 noexcept . Nonaktif secara default kecuali /std:c++17 atau yang lebih baru ditentukan.
/Zc:nrvo[-] Aktifkan penyalinan opsional dan pindahkan elisi. Nonaktif secara default kecuali /O2, , /permissive-atau /std:c++20 yang lebih baru ditentukan.
/Zc:preprocessor[-] Gunakan praproscesor yang sesuai baru. Nonaktif secara default kecuali /std:c11 atau yang lebih baru ditentukan.
/Zc:referenceBinding[-] Sementara UDT tidak akan mengikat referensi lvalue nonkonst. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:rvalueCast[-] Menerapkan aturan konversi jenis eksplisit C++ Standar. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:sizedDealloc[-] Aktifkan fungsi dealokasi berukuran global C++14. Aktif secara default.
/Zc:strictStrings[-] Nonaktifkan string-literal ke char* atau wchar_t* konversi. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:static_assert[-] penanganan ketat dari static_assert. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:templateScope[-] Menerapkan aturan bayangan parameter templat C++ Standar. Nonaktif secara default.
/Zc:ternary[-] Menerapkan aturan operator kondisional pada jenis operand. Nonaktif secara default kecuali /permissive- ditentukan.
/Zc:threadSafeInit[-] Aktifkan inisialisasi statis lokal yang aman untuk alur. Aktif secara default.
/Zc:throwingNew[-] Asumsikan operator new melempar pada kegagalan. Nonaktif secara default.
/Zc:tlsGuards[-] Hasilkan pemeriksaan runtime untuk inisialisasi variabel TLS. Aktif secara default.
/Zc:trigraphs[-] Aktifkan trigraf (usang, nonaktif secara default).
/Zc:twoPhase- Gunakan perilaku penguraian templat yang tidak sesuai (hanya berlaku ketika /permissive- ditentukan, yang defaultnya sesuai).
/Zc:wchar_t[-] wchar_t adalah jenis asli, bukan typedef. Aktif secara default.
/Zc:zeroSizeArrayNew[-] Panggil anggota new/delete untuk array objek ukuran 0. Aktif secara default.

Untuk informasi selengkapnya tentang masalah kesuaian di MSVC, lihat Perilaku nonstandar.

Lihat juga

Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC