亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C++ > 正文

詳解C++編程中斷言static_assert的使用

2020-05-23 14:09:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了C++編程中斷言static_assert的使用,斷言在debug時(shí)非常有用,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
 

斷言和用戶提供的消息 
C++ 語(yǔ)言支持可幫助您調(diào)試應(yīng)用程序的三個(gè)錯(cuò)誤處理機(jī)制:#error 指令、static_assert 關(guān)鍵字和 assert (CRT) 宏。所有的三種機(jī)制都會(huì)發(fā)出錯(cuò)誤消息,其中兩個(gè)還會(huì)測(cè)試軟件斷言。軟件斷言指定在程序的某個(gè)特定點(diǎn)應(yīng)滿足的條件。如果編譯時(shí)斷言失敗,編譯器將發(fā)出診斷消息和編譯錯(cuò)誤。如果運(yùn)行時(shí)斷言失敗,操作系統(tǒng)將發(fā)出診斷消息并關(guān)閉應(yīng)用程序。
備注
應(yīng)用程序的生存期由預(yù)處理、編譯和運(yùn)行時(shí)階段組成。每個(gè)錯(cuò)誤處理機(jī)制都會(huì)訪問(wèn)在這三個(gè)階段之一中可用的調(diào)試信息。若要有效地調(diào)試,請(qǐng)選擇提供有關(guān)該階段的相應(yīng)信息的機(jī)制:
#error 指令在預(yù)處理時(shí)有效。它將無(wú)條件地發(fā)出用戶指定的消息并導(dǎo)致編譯因錯(cuò)誤而失敗。該消息可包含由預(yù)處理器指令操作的文本,但不會(huì)計(jì)算任何生成的表達(dá)式。
static_assert 聲明在編譯時(shí)有效。它將測(cè)試由用戶指定且可以轉(zhuǎn)換為布爾值的整數(shù)表達(dá)式表示的軟件斷言。如果表達(dá)式的計(jì)算結(jié)果為零 (false),編譯器將發(fā)出用戶指定的消息,并且編譯因錯(cuò)誤而失敗。
static_assert 聲明對(duì)調(diào)試模板尤其有用,因?yàn)槟0鍏?shù)可包含在用戶指定的表達(dá)式中。
assert (CRT) 宏在運(yùn)行時(shí)有效。它會(huì)計(jì)算用戶指定的表達(dá)式,如果結(jié)果為零,系統(tǒng)將發(fā)出診斷消息并關(guān)閉應(yīng)用程序。很多其他宏(如_ASSERT 和 _ASSERTE)與此宏類似,但它們發(fā)出不同的系統(tǒng)定義或用戶定義的診斷消息。

static_assert
在編譯時(shí)測(cè)試軟件斷言。如果指定的常量表達(dá)式為 false,則編譯器顯示指定的消息,并且編譯失敗,錯(cuò)誤為 C2338;否則,聲明不起作用。
語(yǔ)法

static_assert(  constant-expression,  string-literal );

參數(shù)

參數(shù) 說(shuō)明
constant-expression 可以轉(zhuǎn)換為布爾值的整型常量表達(dá)式。如果計(jì)算出的表達(dá)式為零 (false),則顯示 string-literal 參數(shù),并且編譯因出錯(cuò)而失敗。如果表達(dá)式不為零 (true),則 static_assert 聲明無(wú)效。
string-literal 當(dāng) constant-expression 參數(shù)為零時(shí)顯示的消息。該消息是編譯器的基本字符集中的一個(gè)字符串;即,不是多字節(jié)或?qū)捵址?/td>

備注
static_assert 聲明的 constant-expression 參數(shù)表示軟件斷言。軟件斷言指定在程序的某個(gè)特定點(diǎn)應(yīng)滿足的條件。如果滿足該條件,則 static_assert 聲明無(wú)效。如果未滿足該條件,則斷言失敗,編譯器在 string-literal 參數(shù)中顯示消息,并且編譯因出錯(cuò)而失敗。
static_assert 聲明在編譯時(shí)測(cè)試軟件斷言。相反,assert (CRT) 宏在運(yùn)行時(shí)測(cè)試軟件斷言,并會(huì)導(dǎo)致增大運(yùn)行時(shí)花費(fèi)的空間和時(shí)間。由于模板參數(shù)包含在 constant-expression 參數(shù)中,因此 static_assert 聲明對(duì)于調(diào)試模板很有用。
當(dāng)遇到聲明時(shí),編譯器將檢查 static_assert 聲明是否存在語(yǔ)法錯(cuò)誤。如果編譯器不依賴于模板參數(shù),則編譯器會(huì)立即計(jì)算 constant-expression 參數(shù)。否則,在對(duì)模板進(jìn)行實(shí)例化時(shí),編譯器將計(jì)算 constant-expression 參數(shù)。因此,當(dāng)遇到聲明時(shí),編譯器可能一次發(fā)布一個(gè)診斷消息,而在對(duì)模板進(jìn)行實(shí)例化時(shí)也是如此。
可以在命名空間、類或塊范圍中使用 static_assert 關(guān)鍵字。(由于 static_assert 關(guān)鍵字可以在命名空間范圍內(nèi)使用,因此,即使它不將新名稱引入程序中,但從技術(shù)上講,它也是一個(gè)聲明。)
說(shuō)明
在下面的示例中,static_assert 聲明具有命名空間范圍。由于編譯器知道類型 void * 的大小,因此可以立即計(jì)算表達(dá)式。
示例

 

static_assert(sizeof(void *) == 4, "64-bit code generation is not supported.");

說(shuō)明
在下面的示例中,static_assert 聲明具有類范圍。 static_assert 驗(yàn)證模板參數(shù)是否為純舊數(shù)據(jù) (POD) 類型。編譯器將在聲明 static_assert 聲明時(shí)檢查該聲明,但不計(jì)算 constant-expression 參數(shù),直到在 main() 中實(shí)例化 basic_string 類模板。
示例

#include <type_traits>#include <iosfwd>namespace std {template <class CharT, class Traits = std::char_traits<CharT> >class basic_string { static_assert(tr1::is_pod<CharT>::value,     "Template argument CharT must be a POD type in class template basic_string"); // ... };}struct NonPOD { NonPOD(const NonPOD &) {} virtual ~NonPOD() {}};int main(){ std::basic_string<char> bs;}

說(shuō)明
在下面的示例中,static_assert 聲明具有塊范圍。 static_assert 驗(yàn)證 VMPage 結(jié)構(gòu)的大小是否與該系統(tǒng)的虛擬內(nèi)存頁(yè)大小相等。
示例

#include <sys/param.h> // defines PAGESIZEclass VMMClient {public: struct VMPage { // ...    }; int check_pagesize() { static_assert(sizeof(VMPage) == PAGESIZE,  "Struct VMPage must be the same size as a system virtual memory page."); // ... }// ...};


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
成人在线精品视频| 亚洲欧洲自拍| 日本18视频网站| 欧美日韩黄视频| 欧美精品九九久久| 精品国产伦一区二区三区观看体验| 一区二区三区观看| 国产精品久久久久久久av电影| 亚洲精品一区中文字幕乱码| 中文字幕一区二区三区四区| 91精品国产99| 欧美高清性粉嫩交| 警花av一区二区三区| 久草在线资源视频在线观看| 97caopron在线视频| 四虎永久在线精品无码视频| 2019中文字幕免费视频| av资源在线免费观看| 中文字幕中文字幕在线中一区高清| 91国产免费观看| 日韩在线观看成人| 日韩av电影中文字幕| 日韩欧美在线免费观看视频| 欧美性猛交xxxx久久久| 精品久久国产一区| 成人免费无码大片a毛片| 日韩美女一区二区三区| 亚洲一区欧美二区| 久久黄色影院| 欧美videos大乳护士334| 亚洲激情网站免费观看| 国产高清视频色在线www| 色欲久久久天天天综合网| 久久综合伊人| 国产精品亚洲二区在线观看| 亚洲女优视频| 男人在线资源站| 九色porny自拍视频在线观看| 国产美女自拍视频| 亚洲国产成人av| 新67194成人永久网站| 伊人久久国产精品| 日本高清视频在线播放| 中国黄色在线视频| 国产在线无码精品| 一本综合精品| 国产又粗又黄视频| 欧洲专线二区三区| 欧美激情xxxx性bbbb| 在线一区二区三区| 中文字幕人妻一区| 国产精品探花在线| 中文字幕区一区二区三| 黄色一级在线视频| 性xxxx视频播放免费| 午放福利视频在线播放| 亚洲色图视频免费播放| 久久99久久99小草精品免视看| 伊人中文字幕在线观看| 国产成人愉拍精品久久| 成人免费视频网| 中文字幕一区二区三区免费视频| 欧美另类久久久品| 久久久老熟女一区二区三区91| 91九色综合久久| 国精产品一区一区三区mba桃花| 久久人人爽人人| 欧美成人精品三级在线观看| 久久九九久精品国产免费直播| 粉色视频免费看| 国产美女在线免费观看| 欧美另类69精品久久久久9999| 青檬在线电视剧在线观看| 黄色网页网址在线免费| 免费在线观看国产精品| 影音先锋在线亚洲| 久久精品视频在线播放| 久久中文字幕av| 91亚洲精华国产精华| 久久久久久久久亚洲| 九九久久九九久久| 日本亚洲欧美三级| 三级黄色在线视频| 亚洲最新色图| 成人av电影免费观看| 久久三级中文| 欧美成人app| 国产精品一区二区三区四区色| 娇小发育未年成性色xxx8| 日韩在线观看视频一区二区| www.麻豆av.com| 亚洲精品女人久久久| 欧洲精品久久久久毛片完整版| 高潮毛片无遮挡| 韩日欧美一区二区| 91毛片在线观看| 欧美一区二区视频在线观看| 欧美午夜一区二区福利视频| 精品日韩美女| 欧美激情啪啪| 黄色动漫免费网站| 国产精品欧美久久久| 91小视频免费观看| gv天堂gv无码男同在线观看| 亚洲激情视频在线| av福利在线| 深夜福利视频网站| 成人久久18免费网站麻豆| 国产freexxxx性播放麻豆| 中文字幕av资源一区| 精品电影一区| 污视频网站免费| 亚洲午夜av| 一区二区传媒有限公司| 中日韩精品视频在线观看| 九一成人免费视频| 国产最新视频在线| 日本中文字幕免费在线观看| 欧美亚洲第一页| 亚洲欧美卡通动漫| 欧美超强性xxxxx| 亚洲第一av色| 免费一级在线观看| 欧美成人一区二区三区电影| 亚洲综合在线小说| 亚洲日本丝袜连裤袜办公室| 一级片免费视频| 久久久亚洲欧洲日产| 在线观看免费一区| 精品91久久久久| 91美女精品| 免费福利视频一区| 欧美日韩一二区| 欧美性videos高清精品| 欧美精品在线观看一区二区| 香港三级日本三级a视频| 国产a亚洲精品| 久久精品国产68国产精品亚洲| 在线亚洲国产精品网站| 777奇米成人网| 波多野结衣中文一区| 黄色国产在线观看| 欧美黑人一级爽快片淫片高清| 超碰porn在线| 伊人成综合网伊人222| 日韩在线a电影| 在线观看黄色小视频| 国产免费一区二区三区| 久久影院在线观看| 欧美视频一区二区三区四区| 久久综合香蕉| 黄色在线观看国产| 日韩欧美一区二区在线视频| 国产成人在线播放| 日本a级片久久久| 在线观看国产亚洲| 欧美一区视频| 性久久久久久久久久久久久久| 国内精品视频在线观看| 亚洲乱码精品久久久久..| 欧美激情久久久久久久| 国产三级香港三韩国三级| 麻豆映画在线观看| 日韩精品高清在线| 成人午夜精品视频| 日本久久久久久| 亚洲狠狠婷婷综合久久久久图片| 日本欧美加勒比视频| 综合久久五月天| 97人人做人人爽香蕉精品| 国产人妖一区| 精品亚洲美女网站| 四虎最新网站| 波多野结衣视频在线播放| 老司机久久99久久精品播放免费| 久久蜜桃香蕉精品一区二区三区| 成年人视频在线| 国产黄色片免费看| 亚洲成人在线观看视频| 亚洲天堂网在线播放| 欧美精品1区| chinese麻豆新拍video| 67194成人在线观看| 品久久久久久久久久96高清| 久久精品免费一区二区三区| 欧美视频在线观看一区二区| 欧洲成人性视频| avove在线播放| 国产精品一区二区三区美女| 久久精品女人毛片国产| 性欧美xxxx免费岛国不卡电影| 粉嫩蜜臀av国产精品网站| 天堂va欧美ⅴa亚洲va一国产| 91免费日韩| 九色在线视频蝌蚪| 色狠狠桃花综合| 91高潮精品免费porn| 在线看欧美日韩| 老司机在线视频二区| 诱人的瑜伽老师3hd中字| 欧美黄色网视频| 日本wwwxx| 国产麻豆精品视频| 欧美日韩一区二区三区不卡视频| 在线观看导航| 亚洲天堂视频在线观看免费| 中文字幕 日韩有码| 久久爱www| 乱色精品无码一区二区国产盗| 暧暧视频在线免费观看| 97超碰在线资源| 最近久乱中文字幕| 国产精品视频中文字幕91| 最新在线中文字幕| 国产美女激情视频| 国产黄色91视频| xx免费视频| 精品少妇一区二区三区在线| 久久午夜色播影院免费高清| 中文字幕在线视频网站| 99热在线观看精品| 国产欧美日韩中文字幕在线| 亚洲精品成人久久久998| 思热99re视热频这里只精品| 米奇777四色精品人人爽| 国内精彩免费自拍视频在线观看网址| 久久96国产精品久久99软件| 久久美女视频| 亚洲爆乳无码精品aaa片蜜桃| 在线观看欧美亚洲| 久久久精品福利| 伊人色在线观看| 日韩国产成人| 成人深夜福利| 亚洲素人一区二区| 精品伊人久久97| 熟妇熟女乱妇乱女网站| 91精品入口蜜桃| 偷拍亚洲精品| 日韩精品一区二区亚洲av性色| 国产精品手机在线观看| 韩国av中国字幕| 国产xxxxx在线观看| 国产丝袜控视频在线观看| 国产成+人+综合+亚洲欧美丁香花| 男女污污的视频| 亚洲mv在线看| 日本久久一区二区三区| 国产网友自拍视频| 一区二区精品免费视频| 免费aⅴ网站| 国产免费福利| 国产精品美女久久久浪潮软件| 亚洲天堂av在线免费| 亚洲人高潮女人毛茸茸| 女人天堂亚洲aⅴ在线观看| 粉嫩绯色av一区二区在线观看| 比比资源-先锋影音资源站| 136国产福利精品导航网址应用| 国产传媒国产传媒| 99久久精品费精品国产一区二区| 午夜在线视频观看| 日本在线观看不卡视频| 亚洲视频观看| 91看片免费| 国产红桃视频| 91色中文字幕| 欧美一区二区三区不卡| 国产成人av电影在线| 国产精品中文欧美| 国产精品成人在线视频| 亚洲理论中文字幕| 亚洲综合精品一区二区| www.精品在线| 欧美日韩国产综合一区二区三区| 亚洲高清资源在线观看| 91影院在线播放| 777国产偷窥盗摄精品视频| 精品在线小视频| 日韩欧美一级大片| 亚洲激情在线| 欧美做爰性欧美大fennong| 国产专区中文字幕| 福利视频在线导航| 国产亚洲女人久久久久毛片| 无遮挡又爽又刺激的视频| 青青草原成人网| 国产富婆一区二区三区| 蜜臀av一区二区在线免费观看| 男人和女人做事情在线视频网站免费观看| 亚洲少妇30p| 中文字幕av久久爽| 中文字幕免费视频观看| 亚洲视频天天射| 天堂网www在线观看| 成人做爰高清视频网站| 97人人爽人人爽人人爽| 国产又猛又黄的视频| 日本高清久久久| 国产精品日日夜夜| 猛男欧美办公室激情在线| 色播五月综合网| 欧美午夜春性猛交xxxx| 国产欧美日韩在线一区二区| 亚洲美女福利视频网站| 影音先锋中文字幕在线视频| 美女福利视频在线观看| 亚州av乱码久久精品蜜桃| 蜜桃91在线| 国产精品黄色| 翁止熄痒禁伦短文合集免费视频| 精品国产三级a∨在线| 国产又粗又猛又黄| 亚洲精品国产精品粉嫩| 欧美xxxx做受欧美88bbw| 视频一区二区在线播放| 99热精品在线观看| 大吊一区二区三区| 91免费高清视频| 国产麻豆一区二区三区在线观看| 呻吟揉丰满对白91乃国产区| 这里只有精品在线观看| 无码人妻精品一区二区三区66| 一二三四日本在线| 一道本在线观看视频| 亚洲一区自拍偷拍| 欧美另类99xxxxx| 亚洲欧美激情视频|