У меня есть сценарий, где я использую CRTP. Псевдо код ниже:std :: unique_ptr и шаблон
template <typename T>
class Base {}
class Derived1 : Base <Derived1> {}
class Derived2 : Base <Derived2> {}
все хорошо, за исключением, когда я ввожу unique_ptr
в петле работает. Я хочу иметь unique_ptr
до Base
и в других местах этого кода. Используйте это, чтобы взять напрокат указатель Derived1
или Derived2
.
// declaration - this is the problem - wont compile.
std::unique_ptr<Base> base_unique_ptr;
// cpp , elsewhere.
base_unique_ptr.reset(new Derived1());
или
base_unique_ptr.reset(new Derived2());
ли я в беде? Я не хочу менять использование существующих кодов unique_ptr
.
Запишите свое определение unique_ptr (как код, а не псевдокод). – MagunRa