/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++20
opsi , /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
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>>Baris Perintah.
Tambahkan
/Zc:static_assert
atau/Zc:static_assert-
ke panel Opsi tambahan: .