【问题标题】:What is the value category of string literals?字符串字面量的值类别是什么?
【发布时间】:2013-02-23 02:17:24
【问题描述】:

我很确定整数、字符、布尔和浮点字面量的值类别是纯右值。

用户定义的文字类似于函数调用,因此它们的值类别取决于它们解析为的运算符函数的返回类型。

我不清楚字符串文字。它们的类型为“const charx 数组”,其中 charx 是某种字符类型。

它在 3.10 中说:

文字的值 ... 也是纯右值。

但我认为这可能不适用于字符串文字?

字符串字面量的值类别是什么?您是如何确定的?

【问题讨论】:

    标签: c++ c++11


    【解决方案1】:

    所以我很确定整数、字符、布尔和浮点文字的值类别是纯右值。

    没错。

    字符串字面量的值类别是什么?

    根据 C++11 标准的第 5.1.1/1 段:

    文字是主要的表达式。它的类型取决于它的形式(2.14)。 字符串文字是左值;所有其他文字都是纯右值。

    【讨论】:

    • 这对我来说没有意义。为什么字符串文字是左值而不是纯右值?
    • @RemyLebeau:因为它是一个对象。例如,您可以获取它的地址,这是整数或浮点文字无法做到的。 liveworkspace.org/code/UAvdz$3
    • @RemyLebeau:因为它基本上必须有存储空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多