这里的网站说: http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=%2Fcom.ibm.vacpp6m.doc%2Flanguage%2Fref%2Fclrc05lvalue.htm If an lvalue appears in a situation in which the compiler exp
class Test {
public:
int n1;
};
Test func() {
return Test();
}
int main() {
func() = Test();
}
这对我没有任何意义。如何以及为什么这是允许的?它是不确定的行为?如果一个函数返回一个右值,那么如何将右值设置为另一个右值?如果我用任何原始类型尝试
C++ 03§4.2N°1: 左值或类型的右值“阵列NT的”或“的阵列T的未知边界“可以转换为类型为”指向T的指针“的右值。结果是指向数组的第一个元素的指针。 很长时间以来,我一直在困惑的是,我并不完全理解数组类型的右值意味着什么。也就是说,我无法想出一个表达式,其类型是一个数组,结果是一个右值。我读this线程,它基本上提出相同的问题,并且接受的答案是“不,数组类型不存在右值”。我想我可能会对此