Это кажется невозможным, но я думаю, что разумно иметь то, что я искал. У меня есть следующий код:
template <typename T>
class Data{
T getData() {
return data;
}
private:
T data;
};
template <typename T>
class Base : public Data<T> {
public:
void someCommonAction() { }
};
class DerivedInt : public Base<int> {
};
class DerivedFloat : public Base<float> {
};
Я хочу присвоить производные объекты классу Base
, но компилятор жалуется, что аргумент шаблона требуется для Base
:
Base b = DerivedInt{};
Я понимаю, что шаблон класса Base
сам по себе не является полным классом, но такие требования для меня вполне разумны. Есть ли альтернативы для достижения того, чего я хочу?