小编PSL*_*PSL的帖子

为什么我必须调用rvalue引用上的移动?

在下面的代码中,为什么第一次调用mkme = mvme_rv调度不到T& operator=(const T&&)

#include <iostream>
#include <string>
#include <vector>

using namespace std;
using T = vector<int>;

int main()
{
  T mvme(10, 1), mkme;
  T&& mvme_rv = move(mvme); // rvalue ref?
  mkme = mvme_rv;           // calls T& operator=(const T&)?
  cout << mvme.empty();     // 0
  mkme = move(mvme_rv);     // calls T& operator=(const T&&)?
  cout << mvme.empty();     // 1
}
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics

8
推荐指数
1
解决办法
729
查看次数

标签 统计

c++ ×1

move-semantics ×1