constexpr究竟有什麼用?

時間 2021-06-01 18:06:16

1樓:MarioCanFly

CSDN-專業IT技術社群-登入

我想要給乙個string做switch操作,但是c++不能對string進行switch,只能是int或enum或者class。

所以得把string轉換成int,算它的Hash值就ok了。

我想要的效果是:

switch(hash(a)){

case hash("a"): ;

case hash("b"): ;

這樣。但是hash("a")不屬於常量,不能case。只好把函式變成了constexpr才解決了問題。

雖然用QStringList和Qmap、Qhash都能把string轉換成int值,但我實在不想 case 0: 、case 1:不太直觀。

2樓:海鵬

就是個高階點的【顯式】常量摺疊標記

沒什麼卵用,不知道為什麼有人非要在模板引數的位置呼叫複雜函式

constexpr優化?你可給我歇會吧

3樓:Shaun

對const的加強,const可以推遲到執行時初始化,constexpr就必須編譯時確定,然後編譯器可以隨心所欲的優化它了。

4樓:歐先飛

主要大概幾個場景(元程式設計中用的比較多):

比如用來簡化元函式

template

constexpr bool is_same_v = std::is_same::value;

呼叫的時候可以直接

auto x = is_same_v;

用於元程式設計的常成員:

template

struct is_same

template

struct is_same

這樣就可以通過

is_same::value

來呼叫這個元函式。

以及修飾常函式,

constexpr int add(int a, int b)修飾分支:

if constexpr () {}

其實你把constexpr修飾的東西看成元函式的變數就好理解了

學習詩歌究竟有什麼用?

魍魎兩 今天在B站看番,骨傲天第二季。在第三集有這麼乙個場景 主角骨傲天部下的亡靈大軍開始向蜥蜴人的村落發起進攻,密密麻麻的骷髏面目猙獰蹣跚前進,天空中一片烏雲滾滾而來。而蜥蜴人這邊也是抖擻精神,準備殊死一戰。這個時候有人發了一天彈幕 黑雲壓城城欲摧,甲光向日金鱗開。我想這就是學詩的用處了吧。 我不...

企業文化究竟有什麼用?

薔石 在回答企業文化究竟有什麼用之前,首先我們要知道什麼是企業文化?企業文化是企業在實踐過程中所習得的並經過實踐驗證而被群體所接受的認知和氛圍。在企業發展和成熟的過程中,當人們認為自己工作的目的 經常使用的流程方法和價值觀等是正確的工作方式,目的 流程和價值觀就內化了,一旦出現這種情形,目的 流程和...

從女性角度看,男性究竟有什麼用?

陣雨不喜歡雨 作用是懂你,作用是累的時候可以依靠,作用是可以傾訴,作用是可以幫你一起解決困難問題,而不是在心情低落時感覺自己被全世界拋棄,孤立無援 靜沫藜莜 就現在看來,我覺得並沒有什麼用,就像戚薇說的,飯我能做,錢我能賺,能自給自足,找個男人還要給他生孩子洗衣做飯,照顧他全家,出力還不一定討好,糟...