Ошибка инициализации int в уникальном указателе C++C++

Программы на C++. Форум разработчиков
Anonymous
Ошибка инициализации int в уникальном указателе C++

Сообщение Anonymous »

Если я инициализирую уникальный указатель, как показано ниже, я получаю сообщение об ошибке:

Код: Выделить всё

std::unique_ptr ptr_obj=new int{10};
ошибка: запрошено преобразование из 'int*' в нескалярный тип 'std::unique_ptr'

Этот код работает нормально:

Код: Выделить всё

std::unique_ptr ptr_obj{new int{10}};
В чем разница между двумя способами инициализации? Использование {} и = не должно иметь значения, поскольку оба здесь предназначены только для явного преобразования в int.


Подробнее здесь: https://stackoverflow.com/questions/784 ... -pointer-c

Вернуться в «C++»