クラス内で(アドレスを使用しない組み込み型以外の)静的なメンバ変数を定義した場合、クラス外でも宣言をしないと使用できません。(リンク時にエラーとなります。) (参考サイト: http://www7b.biglobe.ne.jp/~robe/cpphtml/html02/cpp02028.html)
テンプレートクラスでも同様で、以下のように書けば問題ありません。
template<int N1, int N2> class MyClass { private: static int* p; }; template<int N1, int N2> int* MyClass<N1, N2>::p;
なお、コンパイル確認はMicrosoft Visual C++ Compiler Nov 2012 CTP (v120_CTP_Nov2012)で行いました。
0 件のコメント:
コメントを投稿