C++でタスクシステム作ってて
・特定の種類(型)のタスクに定数時間でアクセスしたい
・実行順位を定めたい
・タスクの数を制限したい
これらの条件を満たすものをファンクタと型消去とリンクリストで実装したら
boost::mpl::listにある型リストにタスクに値するファンクタの型を入れて
各々の要素のメモリ領域を再帰継承のtemplateクラス内部で実体化及びリンクリスト生成、
そのクラスが持っているリンクリストを基底型から順に実行する、
という形になったんだけどこれだとファンクタの種類が多くなった場合に
空リンクリストを見て実行せずに制御だけ返すっていう処理も多くなってしまう。
どうすればもっと軽くできるんだろうか。
それとも、この条件を維持しつつだともうこれ以上最適化できない感じ?