自己言及的なテンプレート (その2) 以前、「自己言及的なテンプレート」 という記事を書いたが、今回はその補足である。 前回、事前に定義されているテンプレートで使用したのは、 最終的に定義されるクラスのポインタだけだったので、 template<class T> class X { public: T* foo() { } }; class A : public X <A> { }; このような自己言及的な書き方が可能なのだと思っていた。 でも、実は次のような使い方も可能なのであった。 template<class T> class X { public: static size_t getSize() { return sizeof(T); } }; class A : public X <A> { int x; }; int main() { cout ここでは、class A の本