Мне нужно скопировать std::unique_ptr<Interface>
некоторого интерфейса Interface
.Копирование std :: unique_ptr интерфейса
This post суммирует это хорошо, но это не работает в моем случае, потому что Interface
не имеет доступного конструктора.
Пример:
//Pointer to copy
std::unique_ptr<Interface> ptr = std::make_unique<Interface>();
//error: incomplete type is not allowed
std::unique_ptr<Interface> copy{ new Interface(*ptr.get().data) };
Есть ли способ глубокой копии ptr
в copy
?
что такое определение 'Interface'? –
Что значит «Мне нужно скопировать» _? 'std :: unique_ptr' не может быть скопирован по назначению. Если вам нужен новый экземпляр интерфейса, создайте новый. –
@JohnSmith Я бы заподозрил что-то абстрактное. –