核心常量表达式的定义取决于常量表达式的概念,如N4140 的要点 (2.7.1) 和 (2.9.1) 中所示。
§5.19/2:
条件表达式
e
是核心常量表达式,除非按照e
抽象机 (1.9) 的规则对 的求值将求值以下表达式之一:
...
(2.7.1) — 整数或枚举类型的非易失性左值,它引用具有先前初始化的非易失性常量对象,用常量表达式初始化
...
(2.9.1) — 用常量表达式初始化或
常量表达式的定义取决于核心常量表达式的概念,如 N4140 的 §5.19/4 所示:
一个常量表达式要么是一个glvalue核心常量表达式,它的值是指一个具有静态存储持续时间的对象或一个函数,或者是一个prvalue核心常量表达式 ,它的值是一个对象,对于那个对象及其子对象:
...
这似乎违背了数理逻辑的基本原理。