Инициализация unique_ptr

98
03 декабря 2020, 21:50

Нужно объявить и инициализировать unique_ptr. Он должен указывать на структуру.

struct Node {
    int key;
};
unique_ptr<Node> head;
head = make_unique<Node>(new Node);

Ошибка:

Node::Node(Node &&): невозможно преобразовать аргумент 1 из "_Ty" в "const Node &
Answer 1

make_unique создает экземпляр Node передавая в конструктор свои аргументы. Смысл этой функции в том, чтобы не вызывать new Node вручную. Соответственно передавать Node * не следует. Далее, head = make_unique - это не инициализация, а присвоение. Инициализация выглядит вот так:

::std::unique_ptr<Node> head{new Node{}};
auto head{::std::make_unique<Node>()};
READ ALSO
Не собирается iio модуль

Не собирается iio модуль

Разбираюсь в libiio, пытаюсь написать условный Hello world модуль (упростил до одной строчки)

108
Умные указатели и утечка памяти

Умные указатели и утечка памяти

Изучаю умные указатели и абстрактные базовые классы

110
Не работает часть стилей

Не работает часть стилей

всем неравнодушным! Заранее благодарю за помощь или желание помочьЕсть сайт: https://lucklife-business

111
Как расположить блоки с помощью flexbox?

Как расположить блоки с помощью flexbox?

у меня есть макет (Фото предоставляю ниже), шапку сверстал самостоятельно, осталось сделать вторую часть макета (главную часть), подскажите...

99