Код: Выделить всё
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