Aracılığıyla paylaş


/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

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

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. > > Komut Satırı özellik sayfasını seçin.

  3. Ek seçenekler:/Zc:static_assertveya /Zc:static_assert- ekleyin.

Ayrıca bkz.

/Zc (Uyumluluk)