Скажем, у меня есть конструктор и делегированный конструктор
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 )
{}
Вот и все. Это будет хорошо работать для временных людей в качестве реальных аргументов.