Наследование шаблона и переменная базового члена

Я получаю странную ошибку при попытке использовать шаблон наследования. Это мой код:

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;   };
};

И это ошибка:

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

И в случае, если это может повлиять на что-то, я использую эти флаги:

-Wall -g -std=c++11

Я действительно не знаю, что не так, поскольку тот же код, что и у чистых классов, без шаблонов работает нормально.

Ответы на вопрос(1)

Ваш ответ на вопрос