/Zc:static_assert
(Katı static_assert işleme)
Derleyici seçeneği, /Zc:static_assert
sınıf veya işlev şablonları ayrıştırıldığında derleyiciye bağımlı olmayan test ifadeleriyle çağrıları değerlendirmesini static_assert
söyler.
Sözdizimi
/Zc:static_assert
/Zc:static_assert-
Açıklamalar
Derleyici /Zc:static_assert
seçeneği, test ifadesi bağımlı değilse derleyiciye bir işlev şablonunun gövdesinde veya ilk ayrıştırıldığında sınıf şablonu üye işlevinin gövdesinde bir değerlendirmesini static_assert
söyler. Bağımlı olmayan test ifadesi değilse false
, derleyici hemen bir hata yayar. Test ifadesi bağımlı olduğunda, static_assert
şablon örneği başlatılana kadar değeri değerlendirilmez.
Bu /Zc:static_assert
seçenek Visual Studio 2022 sürüm 17.1'den itibaren kullanılabilir. Visual Studio'nun önceki sürümlerinde veya belirtilirse /Zc:static_assert-
, bir işlev şablonunun gövdesinde veya bir sınıf şablonunun üye işlevinin gövdesindeyse static_assert
, Visual Studio bağımlı çözümleme yapmaz. Bunun yerine, yalnızca bir şablonun static_assert
örneği oluşturulurken değerini değerlendirir.
/permissive-
seçeneği, veya /std:c++latest
kullanan /std:c++20
projelerde varsayılan olarak açık olması için seçeneğini etkinleştirir/Zc:static_assert
. seçeneği /Zc:static_assert-
, komut satırında bir /std:c++20
, /std:c++latest
veya /permissive-
seçeneğinin ardından gelmelidir.
Derleyici varsayılan C++14 modundaysa ve /permissive-
veya /Zc:static_assert
belirtilmişse, davranışı kullanır /Zc:static_assert
. Ancak, şablon gövdesindeki bir static_assert
değerini değerlendirirse, varsayılan olarak "'terse statik onay' dil özelliği '/std:c++17
derleyici bayrağı gerektirir' uyarısını da bildirir, çünkü bu davranış C++17'ye kadar gerekli değildir.
Visual Studio'da bu derleyici seçeneğini ayarlamak için
Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.
Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.
Ek seçenekler: bölmesine veya
/Zc:static_assert-
ekleyin/Zc:static_assert
.