1

核心常量表达式的定义取决于常量表达式的概念,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核心常量表达式 ,它的值是一个对象,对于那个对象及其子对象:
...

这似乎违背了数理逻辑的基本原理。

4

1 回答 1

1

这些定义是相互递归的,但实际上不是循环的。

于 2015-12-24T09:40:48.240 回答