第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么常量表達(dá)式會(huì)排除未定義的行為?

為什么常量表達(dá)式會(huì)排除未定義的行為?

C++
德瑪西亞99 2019-08-09 10:03:42
為什么常量表達(dá)式會(huì)排除未定義的行為?我正在研究核心常量表達(dá)式*中允許的內(nèi)容,這在C ++標(biāo)準(zhǔn)草案的5.19 常量表達(dá)式第2段中有所描述:條件表達(dá)式是核心常量表達(dá)式,除非它涉及以下之一作為潛在評(píng)估的子表達(dá)式(3.2),但是未評(píng)估的邏輯AND(5.14),邏輯OR(5.15)和條件(5.16)操作的子表達(dá)式不考慮[注意:重載的運(yùn)算符調(diào)用函數(shù)。-end note]:并列出隨后的子彈中的排除項(xiàng)并包括(強(qiáng)調(diào)我的):- 具有未定義行為的操作 [注意:包括,例如,有符號(hào)整數(shù)溢出(第5條),某些指針?biāo)阈g(shù)(5.7),除零(5.6)或某些移位操作(5.8) - 結(jié)束注釋];嗯?為什么常量表達(dá)式需要此子句來(lái)涵蓋未定義的行為?常量表達(dá)式是否有一些特殊的東西需要未定義的行為才能在排除中進(jìn)行特殊劃分?擁有這個(gè)條款是否給了我們沒有它的任何優(yōu)勢(shì)或工具?作為參考,這看起來(lái)像廣義常量表達(dá)式提案的最新修訂版。
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

當(dāng)我們談?wù)?em>未定義的行為時(shí),重要的是要記住標(biāo)準(zhǔn)為這些情況留下了未定義的行為。它并不禁止實(shí)施更強(qiáng)有力的保證。例如,一些實(shí)現(xiàn)可以保證有符號(hào)整數(shù)溢出包圍,而其他實(shí)現(xiàn)可以保證飽和。

要求編譯器處理涉及未定義行為的常量表達(dá)式將限制實(shí)現(xiàn)可以做出的保證,限制它們產(chǎn)生一些沒有副作用的值(標(biāo)準(zhǔn)稱為不確定值)。這排除了現(xiàn)實(shí)世界中發(fā)現(xiàn)的許多延伸保證。

例如,一些實(shí)現(xiàn)或伴隨標(biāo)準(zhǔn)(即POSIX)可以將積分除以零的行為定義為生成信號(hào)。如果表達(dá)式是在編譯時(shí)計(jì)算的,那么這會(huì)產(chǎn)生副作用。

因此,這些表達(dá)式在編譯時(shí)被拒絕,以避免在執(zhí)行環(huán)境中丟失副作用。


查看完整回答
反對(duì) 回復(fù) 2019-08-09
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

還有一點(diǎn)是從常量表達(dá)式中排除未定義的行為:根據(jù)定義,常量表達(dá)式應(yīng)該由編譯器在編譯時(shí)進(jìn)行評(píng)估。允許常量表達(dá)式來(lái)調(diào)用未定義的行為將允許編譯器本身顯示未定義的行為。而且,編譯硬盤驅(qū)動(dòng)器的編譯器因?yàn)?em>編譯了一些惡意代碼而不是你想擁有的。


查看完整回答
反對(duì) 回復(fù) 2019-08-09
  • 3 回答
  • 0 關(guān)注
  • 722 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)