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