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
class D : public B
{
public:
typename B::AbcData m_abc; // --> like this
};