Unique_ptr в производный класс в качестве аргумента функции, которая передает unique_ptr в базовый класс.C++

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

Сообщение Anonymous »

Я пытаюсь использовать unique_ptr для производного класса в функции, которая передает unique_ptr в базовый класс. Что-то вроде:

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

class Base {};

class Derived : public Base {};

void f(unique_ptr const &base) {}

…

unique_ptr derived = unique_ptr(new Derived);
f(derived);
Если я правильно понял этот ответ, этот код должен работать, но он вызывает следующие ошибки компиляции:

ошибка C2664: 'f': невозможно преобразовать параметр 1 из 'std::unique_ptr' в 'const std::unique_ptr &'
IntelliSense: нет подходящего пользовательского определения существует преобразование из "std::unique_ptr" в "const std::unique_ptr"

Если я изменю f на unique_ptr const &derived, все будет работать нормально, но это не то, что мне нужно.
Я делаю что-то не так? Что я могу сделать, чтобы обойти эту проблему?
Я использую Visual Studio 2012.

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

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

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

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

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

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

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