【 在 libgcc 的大作中提到: 】
: 传值跟传rvalue有区别嘛
: 感觉这两派争议很大啊
:
: ...................
我一直认为如果函数需要所有权, 默认的就应该是函数自己的参数传值,靠调用者用std::move。 所以我认为以下的是Capture的正确写法。 或者说对于一切只有移动构造的类,转移所有权到函数内都应该写成这样。 毕竟参数类没有拷贝构造的事实就很清楚的限制了参数本身不可能拷贝而来,那么就一定是移动得来的,那必然明确的告知调用者是转移了所有权的。
void Capture(std::unique_ptr<std::string> str)
--
FROM 1.91.32.*