Юник птр в метод?
Class A
{
public:
void addElement(std::unique_ptr<A>&& a)
{
if(a)
vec.insert(std::make_pair(a.getId(), std::move(a))); }
private:
std::map<std::string, std::unique_ptr<a>> vec;
}
main()
{
A parentA;
std::unique_ptr<A> a = std::make_unique<A>();
parentA(std::move(a));
}
а что такое a.getId() ?
Не важно, там просто любой стринг
\важно/, потому что нет у std::unique_ptr такого метода.
Там стрелочка должна быть, это метод класса а
void addElement(std::unique_ptr<A> a) { if(a) vec.emplace_back(a->getId(), std::move(a)); }
смысл мувать сначала один раз а потом второй?
А аргумент передавать по муву?
а по ссылке принимать его нельзя? (не сарказм, тупо не знаю)
Там будет зависить, смотря какой аргумент...
Как у меня в примере
не актуально это для move only типов
можно. Но смысла в таком коде как я привёл - больше.
Обсуждают сегодня