我看到某个地方有人决定复制一个对象并随后将其移动到一个类的数据成员的代码.这使我感到困惑,因为我认为移动的重点是避免复制.这是一个例子:
struct S
{
S(std::string str) : data(std::move(str))
{}
};
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
str
?std::string
吗?在C++ 0x中转发所有父构造函数的正确方法是什么?
我一直这样做:
class X: public Super {
template<typename... Args>
X(Args&&... args): Super(args...) {}
};
Run Code Online (Sandbox Code Playgroud)