是否有一个不是核心常量表达式的常量表达式?

时间:2017-03-28 03:12:21

标签: c++ c++11 const constexpr compile-time-constant

根据cpprefconstant expression不一定是core constant expression

我的问题:

是否constant expression不是core constant expression

2 个答案:

答案 0 :(得分:3)

[expr.const]/5将“常量表达式”定义为:

  

常量表达式是glvalue核心常量表达式   指的是一个允许的常量结果的实体   表达式(如下定义)或prvalue核心常量表达式   其值满足以下约束条件:[...]

没有一个常量表达式不是核心常量表达式,而cppreference没有其他声明。

答案 1 :(得分:1)

[expr.const]列出了一系列不是核心常量表达式的东西。这些包括有符号整数溢出(32位机器上的65536 * 32768),除以零以及某些移位操作。