这些构造函数是否正确?
它们的左值和右值是否格式正确且正确重载?
std::shared_ptr<std::string> data;
// lvalue constructor
Obj(std::string const & p_data)
: data {std::make_shared<std::string>(p_data)}
{}
// rvalue constructor
Obj(std::string && p_data)
: data {std::make_shared<std::string>(std::move(p_data))}
{}
最佳答案
我觉得不错。
在 move 构造函数中,std::move(p_data)
是必需的,因为p_data
是一个左值。
关于c++ - 这些构造函数是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937365/