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(rvalue引用)的地址。

有什么方法可以安全地将右值的地址传递给另一个函数?

最佳答案



是的,就像下一个例子一样:

#include <iostream>

class MyClass {
       public: MyClass(int a) : a(a) { }
       int a;
   };


void print(MyClass&& a) { std::cout << a.a << std::endl; }

int main() {
    print( MyClass(1337) );
}

关于c++ - 获取右值的地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9786216/

10-10 18:42
查看更多