核心常量表达式的定义取决于常量表达式的概念,如子弹点(2.7.1)和(2.9.1)中所示。 N4140。
§5.19/ 2:
条件表达式
e
是核心常量表达式,除非 评估e
,遵循抽象机器的规则(1.9), 将评估以下表达式之一:
...
(2.7.1) - 整数或枚举类型的非易失性glvalue 是指具有先前初始化的非易失性const对象, 用常量表达式
初始化
...
(2.9.1) - 用常量表达式或
初始化
常量表达式的定义取决于核心常量表达式的概念,如N4140的§5.19/ 4中所示:
常量表达式 是glvalue 核心常量 表达式,其值指的是具有静态存储的对象 持续时间或函数,或prvalue 核心常量表达式 其值为对象,对于该对象及其子对象:
...
这似乎违背了数学逻辑的基本原则。
答案 0 :(得分:1)
这些定义是相互递归的,但实际上并不是循环的。