2013-02-23 53 views
5

我很確定整數,字符,布爾值和浮點文字的值類別是prvalue。字符串文字的值類別是什麼?

用戶定義的文字就像函數調用一樣,因此它們的值類別取決於它們解析爲的運算符函數的返回類型。

我不清楚字符串文字。他們有類型「const charx數組」,其中charx是某種字符類型。

它說,在3.10:

文字的價值......也是prvalue。

但我認爲這可能不適用於字符串文字?

什麼是字符串文字的值類別?你是如何確定這一點的?

回答

14

所以我非常確定整數,字符,布爾值和浮點文本的值類別是prvalues。

這是正確的。

什麼是字符串文字的值類別?

每個段落的C++ 11標準的5.1.1/1:

文本是一個基本表達式。它的類型取決於它的形式(2.14)。 字符串文字是一個左值;所有其他文字都是prvalues。

+1

這對我沒有意義。爲什麼字符串文字是左值而不是前值? – 2013-02-23 02:28:30

+3

@RemyLebeau:因爲它是一個對象。例如,你可以使用它的地址,這是你不能用整數或浮點數字來做的。 http://liveworkspace.org/code/UAvdz$3 – 2013-02-23 02:39:42

+2

@RemyLebeau:因爲它基本上_must_有存儲空間。 – 2013-02-23 14:33:52

相關問題