c 11 – std :: move-如何警告程序员不要使用*从*对象移动

假设有这样的函数:

int * func()
{
  std::unique_ptr<int> ptr(new int(3));
  //Few more lines of code

  //then one function added where programmer writes like some thing

  SOME_OTHER_FUNC(std::move(ptr));

  return ptr.get();
}



void SOME_OTHER_FUNC(std::unique_ptr<int> arg_ptr)
{
}

有没有办法警告程序员用std :: move来避免这样的错误?这不仅与unique_ptr有关,也与其他对象有关.

当我们不恰当地使用移动对象时,是否有任何生成警告的机制?

最佳答案
std :: move是警告.如果您的程序员不理解这一点,您必须更好地教育他们.如果函数太长以至于程序员可以合理地忽略移动,则需要重构函数以缩短它.

转载注明原文:c 11 – std :: move-如何警告程序员不要使用*从*对象移动 - 代码日志