How to Emile Cormier points out here , the problem is that in the place of creation A, Bis still incomplete type, and you can not use the inner template.
X B. T B, , , :
template <typename T>
struct inner_template
{
template <typename U> class tmpl { U mem; };
};
template <typename T>
struct B : A< inner_template<T>::template tmpl >
{
};