【发布时间】:2012-03-20 11:52:11
【问题描述】:
class MyClass {
public: MyClass(int a) : a(a) { }
int a;
};
#include <iostream>
void print(MyClass* a) { std::cout << a->a << std::endl; }
int main() {
print(&static_cast<MyClass&&>(MyClass(1337)));
return 0;
}
这不适用于 GCC 4.6,而它曾经在以前的版本中工作。
现在它说:获取 xvalue 的地址(右值引用)。
有什么方法可以安全地将右值的地址传递给另一个函数?
【问题讨论】:
-
an rvalue reference (a.k.a. address of temporary)一个不一样 -
“我想要更好地理解即将到来的标准。”你到底要从中得到什么理解呢?也许你应该问你真正的问题,你真正想学的东西,而不是这个关于你不想做的事情的问题。
-
我试图把这个问题浓缩成我认为你想知道的本质。 然而这种解释可能相当宽松,所以请查看我的编辑(如果您愿意,可以回滚)。恐怕这可能会使当前的答案看起来有点脱节。