Bagikan melalui


/Zc:static_assert (Penanganan static_assert ketat)

Opsi /Zc:static_assert kompilator memberi tahu pengkompilasi untuk mengevaluasi static_assert panggilan dengan ekspresi pengujian non-dependen saat templat kelas atau fungsi diurai.

Sintaks

/Zc:static_assert
/Zc:static_assert-

Keterangan

Dimulai dengan Visual Studio 17.10, /Zc:static_assert dan /Zc:static_assert- tidak berpengaruh. Kedua opsi diabaikan untuk menghindari melanggar build yang menggunakannya. static_assert sekarang tidak pernah dievaluasi saat mengurai kelas atau templat fungsi.

Opsi /Zc:static_assert kompilator memberi tahu pengkompilasi untuk mengevaluasi static_assert dalam isi templat fungsi atau di isi fungsi anggota templat kelas saat pertama kali diurai, jika ekspresi pengujian tidak bergantung. Jika ekspresi pengujian non-dependen false, pengkompilasi segera mengeluarkan kesalahan. Saat ekspresi pengujian bergantung, static_assert tidak dievaluasi hingga templat dibuat.

Opsi /Zc:static_assert ini tersedia mulai di Visual Studio 2022 versi 17.1. Di versi Visual Studio yang lebih lama, atau jika /Zc:static_assert- ditentukan, Visual Studio tidak melakukan analisis dependen jika static_assert berada dalam isi templat fungsi atau dalam isi fungsi anggota templat kelas. Sebaliknya, templat hanya mengevaluasi static_assert kapan templat dibuat.

Opsi mengaktifkan /permissive-/Zc:static_assert, sehingga aktif secara default dalam proyek yang menggunakan /std:c++20 atau /std:c++latest. Opsi /Zc:static_assert- harus datang setelah /std:c++20opsi , /std:c++latest, atau /permissive- pada baris perintah.

Jika pengkompilasi berada dalam mode C++14 default dan /permissive- atau /Zc:static_assert ditentukan, ia menggunakan /Zc:static_assert perilaku. Namun, jika mengevaluasi static_assert dalam isi templat, ia juga melaporkan peringatan C5254 secara default, "fitur bahasa 'pernyataan statis terse' memerlukan bendera kompilator '/std:c++17'", karena perilaku ini tidak diperlukan sampai C++17.

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>>Baris Perintah.

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

Lihat juga

/Zc (Kesuaian)