哪些右值有名称
What rvalues have names?
本文关键字:有名称 更新时间:2023-10-16
@FredOverflow在C++聊天室中提到,this
是有名称的右值的罕见情况。5.1.1 [expr.prim.general] p4
:下提到的C++0x FDIS
否则,如果成员声明符声明了类X的非静态数据成员(9.2),则表达式
this
是可选大括号或等号初始值设定项内类型为"pointer to X"的prvalue。它不应出现在成员声明书的其他地方(强调矿)
还有什么,如果有的话?
一个突出的例子是枚举器
enum arity { one, two };
表达式one
和two
是右值(更具体地说,是C++0x中的pr值)。另一种是模板非类型参数
template<int *P> struct A { };
表达式P
也是一个右值(更具体地说,是C++0x中的一个prvalue)。
- 布尔文字
true
和false
是布尔类型的prvalue - CCD_ 9是CCD_
- 当您从函数返回命名变量时,它在该表达式的上下文中变为
xvalue
,而xvalue
是rvalue
(根据§3.10/1)
可能还有更多,但这些都是我目前能想到的(第三个是有问题的——实际上是表达式,它是xvalue,但对于类似return x;
的东西(其中x
是一个局部变量,您返回的是值,而不是引用),变量的名称是表达式。名称实际上指的是glvalue,在表达式中,该值(而不是名称)被转换为xvalue(这是一个右值)。
相关文章:
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 为什么 c++(g++) 不允许模板返回类型和函数名称之间有空格?
- 有没有将变量名称转换为双指针的简短方法?
- 有没有办法列出所有共享内存对象的名称?
- 有没有办法我可以在 C++ 中使用 if 语句来说明如果一个字符串不是两个名称的 eqal,它会给出一个输出,ATM i
- 有什么方法可以使用 int 变量来完成组件名称吗?
- 有没有办法给数组的成员指定不同的名称?
- 我对 MyGraph 属性顶点名称和边权重有问题
- 在C++中将内部类实现为具有名称空间的独立类有什么好处
- 有没有一种方法可以使用typedef中的参数名称
- 有没有办法在 c++ 中按函数的名称动态调用函数
- 有没有办法通过插入新类型名称而不是 int 来使用 2 位大小类型而不是 int?
- 有没有办法通过作为用户输入的字符串来创建类实例名称?
- 有没有办法通过过滤进程的名称来自动终止进程?
- 基础类模板参数的有意义名称
- 为什么 GCC 无法优化,除非返回值有名称?
- 非 OOP 版本的"财产"是否有名称?
- C++:此模式是否有名称,是否可以改进
- 此方法是否已经有名称
- 哪些右值有名称