Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Visual Studio 17.10'dan başlayarak /Zc:static_assert ve /Zc:static_assert- hiçbir etkisi yoktur. Bunları kullanan derlemeleri bozmamak için her iki seçenek de yoksayılır.
static_assert artık sınıf veya işlev şablonları ayrıştırılırken hiçbir zaman değerlendirilmez.
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 falseise, 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 /Zc:static_assertkullanan /std:c++20 projelerde varsayılan olarak açık olması için seçeneğini etkinleştirir/std:c++latest. seçeneği /Zc:static_assert- , komut satırında bir /std:c++20, /std:c++latestveya /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.
> > Komut Satırı özellik sayfasını seçin.
Ek seçenekler:
/Zc:static_assertveya/Zc:static_assert-ekleyin.