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

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

為什么我不能在類中有一個(gè)非整數(shù)靜態(tài)const成員?

為什么我不能在類中有一個(gè)非整數(shù)靜態(tài)const成員?

C++
人到中年有點(diǎn)甜 2019-10-17 10:17:26
我注意到C ++不會(huì)編譯以下內(nèi)容:class No_Good {  static double const d = 1.0;};但是,它很樂意允許將double更改為int,unsigned或任何整數(shù)類型的變體:class Happy_Times {  static unsigned const u = 1;};我的解決方案是將其更改為:class Now_Good {  static double d() { return 1.0; }};并認(rèn)為編譯器將足夠聰明,可以在需要時(shí)進(jìn)行內(nèi)聯(lián)...但是,這使我感到好奇。為什么C ++設(shè)計(jì)人員可以讓我將const靜態(tài)地設(shè)置為int或unsigned,而不允許double?編輯:我在Windows XP上使用Visual Studio 7.1(.net 2003)。編輯2:問題已經(jīng)回答,但是為了完成,我看到的錯(cuò)誤是:error C2864: 'd' : only const static integral data members can be initialized inside a class or struct
查看完整描述

3 回答

?
POPMUISE

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

我看不出技術(shù)原因


struct type {

    static const double value = 3.14;

};

是禁止的。您發(fā)現(xiàn)它可以工作的任何地方都是由于非便攜式實(shí)現(xiàn)定義的功能。它們似乎也只有有限的用途。對(duì)于在類定義中初始化的整數(shù)常量,可以使用它們并將它們作為非類型參數(shù)傳遞給模板,并將它們用作數(shù)組尺寸的大小。但是對(duì)于浮點(diǎn)常量,您不能這樣做。允許浮點(diǎn)模板參數(shù)會(huì)帶來它自己的規(guī)則集,這確實(shí)不值得麻煩。


但是,下一個(gè)C ++版本將允許使用constexpr:


struct type {

    static constexpr double value = 3.14;

    static constexpr double value_as_function() { return 3.14; }

};

并且會(huì)做出type::value一個(gè)常量表達(dá)式。同時(shí),最好的選擇是遵循以下模式std::numeric_limits:


struct type {

    static double value() { return 3.14; }

};

它不會(huì)返回常量表達(dá)式(在編譯時(shí)未知值),但這僅在理論上重要,因?yàn)閷?shí)際情況下無論如何都將內(nèi)聯(lián)該值。請(qǐng)參閱constexpr建議。它包含


4.4


Floating-point constant expressions


傳統(tǒng)上,在編譯時(shí)評(píng)估浮點(diǎn)常量表達(dá)式是一個(gè)棘手的問題。為了統(tǒng)一性和通用性,我們建議允許使用任何浮點(diǎn)常量表達(dá)式初始化的浮點(diǎn)類型的常量表達(dá)式數(shù)據(jù)。這還將增強(qiáng)與C99 [ISO99,§6.6]的兼容性,從而允許


[#5]在多種情況下都需要一個(gè)計(jì)算結(jié)果為常量的表達(dá)式。如果在翻譯環(huán)境中評(píng)估浮動(dòng)表達(dá)式,則算術(shù)精度和范圍至少應(yīng)與在執(zhí)行環(huán)境中評(píng)估表達(dá)式一樣大。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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