2011-08-07 134 views

回答

16

從n3290,5.2.9靜態施放[expr.static.cast]:

10整型或枚舉類型的值可以顯式轉換 到枚舉類型。如果原始值 在枚舉值(7.2)的範圍內,則值不變。否則, 結果值未指定(可能不在該範圍內)。 [...]

枚舉類型既包括被聲明用enum和那些聲明爲enum classenum struct那些類型,其標準分別調用無作用域枚舉和作用域枚舉。在7.2枚舉聲明[dcl.enum]中有更詳細的描述。

枚舉類型的不會與其枚舉器混淆。在你的情況下,由於枚舉你宣佈都有int爲它們的基礎類型的值的範圍是相同的int:從INT_MININT_MAX(含)。

由於42的類型爲int,並且該行爲顯然是int的值。

+0

啊,我誤解了「枚舉值」的含義。謝謝。 – ecatmur

相關問題