Я хочу реализовать CRTP в шаблоне С++. Код выглядит следующим образом:
template <typename T>
class A{
public:
typedef typename T::Scalar Scalar;
};
template <typename T>
struct B:public A<B<T> > {
public:
typedef T Scalar;
};
Но когда я компилирую код, компилятор показывает:
error: no type named ‘Scalar’ in ‘struct B<int>’
Кто-нибудь может объяснить это?
B
неполный, когда вы создаете экземплярA<B>
), но я чувствую, что копирую/ исправление/вставка моего ответа здесь было бы дешево. - person Quentin   schedule 07.07.2016