2015-12-24 70 views
1

一個芯常量表達式的定義取決於常量表達式的概念作爲可在要點(2.7.1)和可見(2.9.1)的N4140。`芯恆定expression` VS`恆定expression`

§5.19/ 2:

甲條件表達式e芯常量表達式除非的e的 評價,下列的抽象機(1.9)的規則, 將評估的一個下面的表達式:

...

(2.7.1) - 積分或枚舉類型的非易失性glvalue該 指與常量表達式

初始化之前的初始化非易失性const對象, ...

(2.9.1) - 它與一個常量表達式初始化

而一個常量表達式的定義取決於芯常量表達式的概念,如可以在可見§5.19N4140/4:

常量表達式或者是一個glvalue 芯恆定 表達,其值指的是具有靜態存儲 持續時間或以一個函數的對象,或一個prvalue 芯常量表達式 ,其值是一個對象,其中,F或者說對象及其子對象:
...

這似乎無視數理邏輯的基本原則。

+0

確切的問題是什麼? – skypjack

+2

表達式可以包含其他表達式;這不是問題。 –

+1

它不違反邏輯,因爲代碼中的表達式形成一棵樹,而不是一個具有循環的圖 –

回答

1

這些定義是相互遞歸的,但實際上不是循環的。