このコードがコンパイル通らない理由がわからない…
template <class T> class Test{ public: typename T::param_type hige; }; class hoge: public Test<hoge>{ public: typedef int param_type; }; int main(){ hoge x; x.hige=0; }
このコードがコンパイル通らない理由がわからない…
template <class T> class Test{ public: typename T::param_type hige; }; class hoge: public Test<hoge>{ public: typedef int param_type; }; int main(){ hoge x; x.hige=0; }
自己解決….
hogeの定義時にTest<hoge>をインスタンス化するけど,その中のT::param_typeをインスタンス化するときにhogeはまだできてないからparam_typeなにそれ?ってなってるわけか.