C++11 如何将int作为右值参数传递给函数或构造函数?

C++11 如何将int作为右值参数传递给函数或构造函数?,c++11,c++14,C++11,C++14,在下面的代码中,类A有两个构造函数,一个通过值获取int,另一个通过右值引用获取int。如何使用第二个构造函数调用创建对象 #include <iostream> using namespace std; class A { public: A(int i) : r_i(i) { cout<<endl<<"A(inti)"; } A(int&& i) : r_i(i) { cout<<endl

在下面的代码中,类A有两个构造函数,一个通过值获取int,另一个通过右值引用获取int。如何使用第二个构造函数调用创建对象

#include <iostream>
using namespace std;

class A
{
public:
  A(int i) : r_i(i)
  {
    cout<<endl<<"A(inti)";
  }

  A(int&& i) : r_i(i)
  {
    cout<<endl<<"A(int&&)";
  }

private:
  int &r_i;
};

int main()
{
  int j = 5;
  A a(j); // Works
  A b(std::move(j)); //  Error [1]
}
#包括
使用名称空间std;
甲级
{
公众:
A(int i):r_i(i)
{

答案的可能重复:在第一个ctor中,你的引用变为悬空,你知道吗?答案的可能重复:在第一个ctor中,你的引用变为悬空,你知道吗?