如何使用构造函数委托在 C++ 中使用命名构造函数?

How do I use named constructors in C++ using constructor delegates?

假设我有一个构造函数和一个委托构造函数

SomeClass(const std::string&& _name) : obj_needs_construction(100), name(_name) {}
SomeClass(const std::string& _name) : SomeClass(_name) {}

但两者都使用相同的类型,我见过很多解决方案,但它们似乎都可以运行,因为它们制造了不同的类型,但在我的情况下不起作用。我该如何解决?

谢谢。

SomeClass(const std::string& _name) : SomeClass(std::move(_name)) {}

替换

SomeClass(const std::string&& _name) : obj_needs_construction(100), name(_name) {}
SomeClass(const std::string& _name) : SomeClass(_name) {}

…只有

SomeClass( std::string const& name )
    : obj_needs_construction( 100 )
    , name_( name )
{}

就是这样。它将作为实际参数很好地用于临时变量。