Присвойте unique_ptr производного класса базовому классу.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Присвойте unique_ptr производного класса базовому классу.

Сообщение Anonymous »

Почему этот код не компилируется?
// Введите здесь свой код или загрузите пример.

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

#include 

struct Base {
};

struct Derived: Base {
int n;
};

int main() {
std::unique_ptr base_ptr = std::make_unique(5);
}
Я просмотрел исходники unique_ptr и похоже, что он позволяет перемещать unique_ptr производных классов https://github.com/gcc-mirror/gcc/blob/ ... stdc%2B%2B -v3/include/bits/unique_ptr.h#L368
Мне это нужно, чтобы я мог собирать сообщения разного типа, если есть коллекция, для дальнейшей работы с ними
Компилятор выводит:

/usr/include/c++/13/bits/unique_ptr.h:1070:30: ошибка: не удалось
конвертировать 'std::forward((* & __args#0))' из 'int' в
'arb::exchange_connector::Base' 1070 | { return
unique_ptr(new _Tp(std::forward(__args)...));


Подробнее здесь: https://stackoverflow.com/questions/786 ... base-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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