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