相关疑难解决方法(0)

返回的本地人自动xvalues

继我对此做出的评论之后:

将std :: vector传递给构造函数并移动语义 是否std::move在下面的代码中是必要的,以确保返回的值是xvalue?

std::vector<string> buildVector()
{
  std::vector<string> local;

  // .... build a vector

  return std::move(local);
}
Run Code Online (Sandbox Code Playgroud)

我的理解是这是必需的.我经常看到std::unique_ptr从函数返回时使用的这个,但是GManNickG发表了以下评论:

我的理解是,在一个return语句中,所有局部变量都是自动xvalues(到期值)并将被移动,但我不确定它是否仅适用于返回的对象本身.所以OP应该继续把它放在那里,直到我更加自信它不应该是.:)

任何人都可以澄清是否std::move有必要吗?

行为编译器是否依赖?

c++ move-semantics c++11

18
推荐指数
3
解决办法
1400
查看次数

标签 统计

c++ ×1

c++11 ×1

move-semantics ×1