[トピック内 3 記事 (1 - 3 表示)] << 0 >>
c++で、templateクラス内のtemplateクラスstaticメンバ変数を 初期化する方法がわからず困っております。 template <typename T> class Hoge { template< typename T2 > class StaticC { static int id_; }; }; このとき Hoge::StaticC::id_ に初期値を入れたいのですが、 どう書けばよいのでしょうか。 ご存じの方おられましたら、ご教授いただけると助かります。 よろしくお願いします。
えーと...こんなもん? #include <iostream> template <typename T1> struct Hoge { template< typename T2 > struct StaticC { static int id_; }; }; template<typename T1> template<typename T2> int Hoge<T1>::StaticC<T2>::id_ = sizeof(T1) * sizeof(T2); int main() { std::cout << Hoge<int>::StaticC<long>::id_ << std::endl; }
管理者用
- Child Tree -