/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 中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
將 或
/Zc:static_assert-
新增/Zc:static_assert
至 [ 其他選項: ] 窗格。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應