在一個(gè)復(fù)雜系統(tǒng)中,很難(幾乎肯定不能) 分辨一個(gè)初始值到底是不是常量表達(dá)式。當(dāng)然可以定義一個(gè) const 變量并把它的初始值設(shè)為我們認(rèn)為的某個(gè)常量表達(dá)式,但在實(shí)際使用時(shí),盡管要求如此卻常常發(fā)現(xiàn)初始值并非常量表達(dá)式的情況??梢赃@么說,在此種情況下,對象的定義和使用根本就是兩回事兒。
創(chuàng)新互聯(lián)公司主營樺甸網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),樺甸h5成都小程序開發(fā)搭建,樺甸網(wǎng)站營銷推廣歡迎樺甸等地區(qū)企業(yè)咨詢
C++11 新標(biāo)準(zhǔn)規(guī)定,允許將變量聲明為 constexpr 類型以便由編譯器來驗(yàn)證變量的值是否是一個(gè)常量表達(dá)式。聲明為 constexpr 的變量一定是一個(gè)常量,而且必須用常量表達(dá)式初始化:
constexpr int mf = 20;? // 20 是常量表達(dá)式
constexpr int limit = mf + 1;??//mf + 1是常量表達(dá)式
constexpr int sz = size();
// 只有當(dāng) size 是一個(gè) constexpr 函數(shù)時(shí)
// 才是一條正確的聲明語句
盡管不能使用普通函數(shù)作為 constexpr 變量的初始值,但是正如 6.5.2 節(jié)(第 214 頁)將要介紹的,新標(biāo)準(zhǔn)允許定義一種特殊的 constexpr 函數(shù)。這種函數(shù)應(yīng)該足夠簡單以使得編譯時(shí)就可以計(jì)算其結(jié)果,這樣就能用 constexpr 函數(shù)去初始化 constexpr 變量了
總結(jié):
一般來說,如果你認(rèn)定變量是一個(gè)常量表達(dá)式,那就把它聲明成 constexpr類型。
注意:
必須明確一點(diǎn),在 constexpr 聲明中如果定義了一個(gè)指針,限定符 constexpr 僅對指針有效,與指針?biāo)傅膶ο鬅o關(guān):
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:C++關(guān)鍵字constexpr-創(chuàng)新互聯(lián)
新聞來源:http://aaarwkj.com/article32/hojsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、建站公司、定制網(wǎng)站、網(wǎng)站收錄、全網(wǎng)營銷推廣、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容