>>766
処理の主体は外部のメソッドです。
class Ancient { public: bool is(unsigned t); };
class Base : public Ancient { public: bool is_sub(unsigned t); };
class Sub1 : public Base { public: some_method(); }
class Sub2 : public Base { public: another_method(); }
class Sub3 : public Base { public: yet_another_method(); }
static Ancient* classes;

このような状態ですので、派生クラスでのオーバーライドでは、
基底クラスに派生クラスのメソッドを、全て書くことになってしまいます…。

派生クラスの型を基底クラスが扱っている時点でも問題がありますが、
そういう関係になってしまっているのも私の力不足です。
もしこちらも改善する方法をご存知でしたらぜひお願いします…。

(短く書くためにC++にしているだけで、テンプレートは使えないです。
細かい部分は目をつむっていただけると助かります。)