簡體   English   中英

變量上的 consteval 與 constexpr

[英]consteval vs constexpr on variables

constexprconsteval之間有什么區別嗎?

 consteval int x1 = 2;
 constexpr int x2 = 5;

使用 constexpr 比使用 consteval 更好嗎?

標准實際上說:

consteval 說明符應僅應用於函數或函數模板的聲明。

所以你的第一個例子不應該編譯.


但是,您可以將constevalconstexpr放在函數上:

constexpr int foo (int x) { return x; }
consteval int bar (int x) { return x; }

constexpr應用於函數時只是建議性的 - 它告訴編譯器,如果可以,請在編譯時評估此函數調用。

另一方面, consteval是強制性的 - 它告訴編譯器,如果您無法在編譯時評估此函數調用,則會生成錯誤。

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM