偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

描述Visual Studio assert宏

開(kāi)發(fā) 后端
這里介紹Visual Studio assert宏是在運(yùn)行時(shí)進(jìn)行檢查。不難發(fā)現(xiàn),我們?nèi)鄙倭艘粯訓(xùn)|西,那就是可用于在編譯時(shí)檢查的工具。于是,靜態(tài)斷言應(yīng)運(yùn)而生。

#t#Visual Studio有很多值得學(xué)習(xí)的地方,這里我們主要介紹Visual Studio assert宏,包括介紹靜態(tài)斷言static_assert等方面。C++標(biāo)準(zhǔn)C++03中,我們可以使用兩種斷言:
◆使用預(yù)處理中的條件編譯和#error指令,可以在預(yù)處理階段檢查一些編譯條件
◆可以使用Visual Studio assert宏來(lái)進(jìn)行運(yùn)行時(shí)檢查,以確保程序邏輯的正確性

但使用#error方法是非常煩瑣的,并且不能夠?qū)δ0鍏?shù)進(jìn)行檢查,因?yàn)槟0鍖?shí)例化是在編譯時(shí)進(jìn)行,而#error方法是在預(yù)處理階段進(jìn)行的。而 Visual Studio assert宏是在運(yùn)行時(shí)進(jìn)行檢查。不難發(fā)現(xiàn),我們?nèi)鄙倭艘粯訓(xùn)|西,那就是可用于在編譯時(shí)檢查的工具。于是,靜態(tài)斷言應(yīng)運(yùn)而生。

在新的C++標(biāo)準(zhǔn)C++0x中,加入了對(duì)靜態(tài)斷言的支持,引入了新的關(guān)鍵字static_assert來(lái)表示靜態(tài)斷言。使用靜態(tài)斷言,我們可以在程序的編譯時(shí)期檢測(cè)一些條件是否成立,這個(gè)特性在調(diào)試模板函數(shù)的模板參數(shù)時(shí)特別有用。在編譯的時(shí)候,模板函數(shù)實(shí)例化,這時(shí)我們就可以使用靜態(tài)斷言去測(cè)試模板函數(shù)的參數(shù)是否按照我們的設(shè)計(jì)擁有合適的值。例如下面這段代碼:

  1. template <int N> struct Kitten {  
  2. static_assert(N < 2, "Kitten<N> requires N < 2.");  
  3. };  
  4.  
  5. int main() {  
  6. Kitten<1> peppermint;  
  7. Kitten<3> jazz;  
  8.  
  9. return 0;  

當(dāng)我們?cè)谥骱瘮?shù)中使用“1”去實(shí)例化Kitten這個(gè)結(jié)構(gòu)體時(shí),在編譯的時(shí)候,靜態(tài)斷言static_assert會(huì)測(cè)試參數(shù)N的值,當(dāng)N的值小于2時(shí)就會(huì)產(chǎn)生一個(gè)斷言錯(cuò)誤,并將相應(yīng)的調(diào)試幫助信息輸出到“Error List”窗口中,這樣程序員就可以對(duì)問(wèn)題快速定位,解決問(wèn)題就更加方便了。

另外,靜態(tài)斷言還帶來(lái)很多其他的優(yōu)勢(shì)。例如靜態(tài)斷言在編譯時(shí)進(jìn)行處理,不會(huì)產(chǎn)生任何運(yùn)行時(shí)刻空間和時(shí)間上的開(kāi)銷(xiāo),這就使得它比Visual Studio assert宏具有更好的效率。另外比較重要的一個(gè)特性是如果斷言失敗,它會(huì)產(chǎn)生有意義且充分的診斷信息,幫助程序員快速解決問(wèn)題。

責(zé)任編輯:佚名 來(lái)源: 博客
相關(guān)推薦

2009-11-06 13:54:09

Visual Stud

2011-03-23 08:42:36

Visual Stud

2009-12-03 15:42:17

Visual Stud

2009-11-05 13:17:32

Visual Stud

2009-11-24 11:11:33

Visual Stud

2023-09-05 07:32:22

vscode開(kāi)源故障

2013-11-14 01:09:35

微軟Visual StudVisual Stud

2009-12-02 09:43:38

Visual Stud

2024-02-27 12:42:38

開(kāi)發(fā)前端

2019-09-19 08:00:00

Visual StudVisual Stud編程語(yǔ)言

2009-11-10 10:24:28

Visual Stud

2009-11-23 15:41:44

Visual Stud

2009-11-23 17:12:20

Visual Stud

2009-11-10 13:43:37

Visual Stud

2009-11-24 10:27:41

Visual Stud

2009-11-06 13:25:35

Visual Stud

2009-11-10 12:44:01

Visual Stud

2010-02-22 16:43:33

Visual Stud

2009-11-12 12:42:35

Visual Stud

2010-12-14 09:15:50

Visual Stud
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)