Как использовать именованные конструкторы в C ++ с использованием делегатов конструктора?

Скажем, у меня есть конструктор и делегированный конструктор

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

Но оба используют один и тот же тип, я видел много решений, но все они работают, потому что они делают разные типы, но это не сработает в моей ситуации. Как я могу решить это?

Благодарю.

1

Решение

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

Другие решения

замещать

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 )
{}

Вот и все. Это будет хорошо работать для временных людей в качестве реальных аргументов.

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector