class Test {
public:
int n1;
};
Test func() {
return Test();
}
int main() {
func() = Test();
}
这对我来说没有意义。如何以及为什么允许这样做?它是未定义的行为吗?如果一个函数返回一个右值,那么如何将一个右值设置为另一个右值?如果我用任何原始类型尝试这个,它会像我预期的那样给我一个错误。
我知道左值是内存中的一个位置,那么该函数是否会创建一个临时左值(右值?)并将其分配给另一个左值?有人可以解释这种语法是如何工作的吗?