多重継承を使用して、一種の CRTP (それが何であるかをよく理解している場合) を実装しようとしています。
私の主な目標は、各サブクラスのインスタンスのリストにアクセスするための統一された方法を持つことです。
名前空間の使用率に問題があるようです。
これが最も単純なバージョンのコードです: http://ideone.com/rFab5
私の本当の問題は、http: //ideone.com/U7cAfに似てい ます。
clang++ を使用して追加の警告があります:
test.cpp:28:63: warning: static data member specialization of 'instances' must originally be declared in namespace 'NS1'; accepted as a C++0x extension [-Wc++0x-extensions]
template <> std::list<NS1::Derived*> NS1::Base<NS1::Derived>::instances;
^
test.cpp:15:34: note: explicitly specialized declaration is here
static std::list<T*> instances;
名前空間を使用すると同じように動作しないため、問題が更新されました。
Ideone にコードを投稿するために再編集された問題