Invalid covariant return type
От: vng Беларусь https://organicmaps.app/
Дата: 09.10.20 10:13
Оценка:
class BaseI
{
public:
    virtual BaseI * foo() = 0;
};

template <class Derived> class BaseT : public BaseI
{
public:
    virtual Derived * foo() override
    {
        return new Derived();
    }
};

class Derive1 : public BaseT<Derive1> {};
class Derive2 : public BaseT<Derive2> {};


Получаю ошибку компиляции "Invalid covariant return type" хотя фактически они covariant. Есть ли объяснение почему так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.