Herencia de plantilla y una variable miembro base

Recibo un error extraño cuando intento usar la herencia de plantillas. Este es mi código:

template <class T> class A {
public:
    int a {2};
    A(){};
};

template <class T> class B : public A<T> {
    public:
    B(): A<T>() {};
    void test(){    std::cout << "testing... " << a << std::endl;   };
};

Y este es el error:

error: use of undeclared identifier 'a'; did you mean 'std::uniform_int_distribution<long>::a'?
    void test(){    std::cout << "testing... " << a << std::endl;   }

Y en caso de que pueda afectar algo, uso estas banderas:

-Wall -g -std=c++11

Realmente no sé qué está mal, ya que el mismo código que las clases puras sin plantillas funciona bien.

Respuestas a la pregunta(1)

Su respuesta a la pregunta