テンプレートの継承を使用しようとすると奇妙なエラーが発生します。 これは私のコードです:テンプレートの継承とベースメンバーの変数
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
私は本当にしないでくださいテンプレートがない純粋なクラスと同じコードがうまく動作するので、何が間違っているかを知る。
'無効テスト(){のstd :: coutの<< "検査..." << A :: << std :: endl; }; ' –
Rerito