S.F.Tracker(290)

公開:2007-10-31 22:26
更新:2020-02-15 04:36
カテゴリ:sftracker,c++,windows,audio,tracker

component_iteratorの続き。
とりあえずはstatic_castでComponent&にキャストすれば、
BOOST_FOREACH(Component p,static_cast<Component&>(any_component)) {}
で回せるようになっている。
しかし、本当は「Componentを継承している任意のクラスは、component_iteratorを使って子Componentを列挙できる」ようにしたいのだ。
BOOST_FOREACH(Component
p,any_component) {}
こうしたいのだが、できない。
なんとなくは、range_iteratorの特殊化において、Componentの継承クラスのみcomponent_iteratorを返すようにできればよいというところまではわかるのだが、私のpoorなテンプレートメタプログラミング知識ではうまくいかないのだ。
かなりの勉強が必要だ。