PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] constexpr 使用的時機
作者:
wtchen
(沒有存在感的人)
2015-05-07 21:52:00
剛剛學到constexpr這個關鍵字,不過看了很久不是很了解使用的時機。
依照這個網頁:
http://en.cppreference.com/w/cpp/language/constant_expression
似乎是可以在等號右邊放function的const?
不知道前輩們有無進一步的見解?
感謝。
作者:
LPH66
(-6.2598534e+18f)
2015-05-07 22:15:00
有些地方需要編譯時期常數的可以使用宣告為 constexpr 的值例如網頁裡開頭的例子, 模版參數非型別的需為編譯時期常數當然能寫 constexpr 的式子就很有限大原則是編譯時可以算得出來的值
作者:
kwpn
(ITSST)
2015-05-07 22:29:00
用在變數上跟用在函式上意義差很多, constexpr函式除了可以用在編譯期計算, 也能像一般函式在執行期計算
作者:
Feis
(永遠睡不著 @@)
2015-05-07 23:24:00
主觀上, 我倒是覺得意義沒有差很多.倒是要分清楚 const 跟 constexpr 意義不一樣constexpr 就是著眼於所有編譯期能先算出來的東西.原則上如果你能加就盡量加 xD少數不該加的情況是在於你不確定他真的可以是 constexpr你加了以後, 別人會以為他是. 之後要改的話可能會造成災難constexpr 的成立條件可能依賴另一個 constexpr
作者:
wtchen
(沒有存在感的人)
2015-05-07 23:55:00
所以是說constexpr = only編譯時期的常數?那可以連static並用嗎? 如果在某物件裡宣告為static constexpr的變數可以拿到main裏面用嗎?
作者:
Feis
(永遠睡不著 @@)
2015-05-08 00:02:00
抱歉, 我看不太懂你的問題. 不過你可以寫看看阿你這個例子比較大的問題反而是存取限制
作者:
wtchen
(沒有存在感的人)
2015-05-08 00:12:00
因為說實話我也看不太懂constexpr跟const的差別想說是不是有哪些case非要用constexpr不可的
作者:
Feis
(永遠睡不著 @@)
2015-05-08 00:20:00
非用 constexpr 不可的通常都是函數.但是你可以想想如果 x 是個 const int,那 std::array<int, x> foo; 這行是合法的嗎 ?
繼續閱讀
[問題] enum使用問題
tarobear
[問題] 如何紀錄程式執行時的時間
FierceBreast
[問題] VC++呼叫Form2問題
sura
[問題] 請益如何記錄不規則的座標值呢
morningjis
[問題] c&c++的問題
zxcv4982543
[問題] hash_map 取最後一筆的值
TwoDemon
[問題] 關於gil/gil.h跟gil/dip.h,哪裡可以找到
seark1219
[問題] threadpool內的程式沒有啟動@@?
BIAO
[問題] C++學習用書
kiwistar
[問題] DLL與物件使用
zelkova
Links
booklink
Contact Us: admin [ a t ] ucptt.com