When the base class B
class depends upon the template parameters, even though derived class D
here type alias AbcData
inherited from the B
, using simply AbcData
in D
class, is not enough.
You need to be explicit, from where you have it
template<typename ...Args>
class D : public B<float, Args...>
{
public:
typename B<float, Args...>::AbcData m_abc; // --> like this
};