C 11 靜態斷言static assert

2021-09-11 02:24:59 字數 440 閱讀 1199

一 assert

在c++中,或中提供了assert巨集(執行期斷言)。可以定義ndebug來禁用assert巨集。

二 static_asser

c++11 靜態斷言static_assert,編譯期斷言。

static_assert(常量表示式,提示字串)

兩個引數,乙個是斷言表示式,由於是在編譯期間,所以斷言表示式必須是常量表示式。乙個是提示資訊,可以自定義。

static_assert是c++的標準語法,不需要引用標頭檔案。

三 舉例

#include #include int main() 

}

C 11 基於範圍的for迴圈和靜態斷言

在c 中for迴圈可以使用基於範圍的for迴圈,示例 如下 include using namespace std void test01 int n sizeof arr sizeof arr 0 for int i 0 i n i cout endl for int tmp arr cout e...

C 11之斷言(影響面廣)

很可笑,我很少用斷言,對斷言的不了解程度與初學者無異。今天翻看了 深入理解c 11 新標準中對斷言做了改進,至少說明斷言還是很有用的。結合 大全 c 應用程式效能優化 把自己對斷言的理解寫下來以方便自己日後用到時查閱。一 為什麼要用斷言 首先要搞清楚為什麼要用斷言,不能看別人 中有,就追趕時髦地用一...

C11編譯時斷言static assert

c 11標準新引入的static assert功能可以實現靜態斷言,是乙個非常強大的模板元程式設計工具,配合sfinae特性可以在編譯期發現不符合預期的不合理特化,並且給出自定義的錯誤資訊。1.static assert是 c11 中引入的關鍵字。static assert是 c11 中引入的巨集,...