共用方式為


/Zc:static_assert (嚴格static_assert處理)

編譯 /Zc:static_assert 程式選項會告訴編譯器在剖析類別或函式範本時,使用非相依測試運算式評估 static_assert 呼叫。

語法

/Zc:static_assert
/Zc:static_assert-

備註

如果測試運算式不相依,編譯 /Zc:static_assert 程式選項會告訴編譯器在函式範本範本主體或類別範本成員函式主體中評估 static_assert 。 如果非相依測試運算式不是 false ,編譯器會立即發出錯誤。 當測試運算式相依時, static_assert 在具現化範本之前,不會評估 。

此選項 /Zc:static_assert 可從 Visual Studio 2022 17.1 版開始使用。 在舊版的 Visual Studio 中,或 /Zc:static_assert- 如果已指定,則 Visual static_assert Studio 不會在函式範本的主體內或類別範本的成員函式主體內執行相依分析。 相反地,它只會在具現化範本時評估 static_assert

選項 /permissive- 會啟用 /Zc:static_assert ,因此預設會在使用 /std:c++20/std:c++latest 的專案中開啟。 選項 /Zc:static_assert- 必須位於命令列上的 、 /std:c++latest/permissive- 選項之後 /std:c++20

如果編譯器處於預設 C++14 模式,或 /permissive-/Zc:static_assert 已指定 ,則會使用 /Zc:static_assert 行為。 不過,如果它在範本主體中評估 static_assert ,它也會報告預設警告 C5254:「語言功能 'terse static assert' 需要編譯器旗標 ' /std:c++17 '」,因為直到 C++17 才需要此行為。

在 Visual Studio 中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 將 或 /Zc:static_assert- 新增 /Zc:static_assert 至 [ 其他選項: ] 窗格。

另請參閱

/Zc (一致性)