Re: [问题] constexpr 与 static const 的选择

楼主: poyenc (发箍)   2019-06-13 13:33:43
※ 引述《CarbonK (HTYISABUG)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: Linux
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: GCC
: 问题(Question):
: 对于 constexpr 跟 static const 的差别不太了解
: static const 在编译时期时
: 常数会直接储存在执行档的 .data 这个 segment 里
: 这是我的理解
: 问题是 constexpr 会检查 expression 是否为编译期常数
: 但检查完后它资料是仍然放在 stack 中
: 还是也会放在 .data 中
: 然后我到底该不该用 constexpr 取代 static const ?
: 还是说其实根本可以 static constexpr ?
: 麻烦大家拨冗满足我的好奇心,谢谢
:
作者: CarbonK (HTYISABUG)   2019-06-13 22:06:00
十分感谢你的回文!也就是说,实际上如果要保证编译期常数就应该要用 constexpr而 static const 常常会变成编译期常数是编译器优化的结果我这样的理解是正确的吗?
楼主: poyenc (发箍)   2019-06-14 00:20:00
你指的如果是不存在于 object file 的话, 对喔

Links booklink

Contact Us: admin [ a t ] ucptt.com