09/04/05 18:25:43 KXq+7Jyb
戻り値の型を書き忘れた。こう。
template typename<T> void update(T& actor);
で、型ごとに特殊化されたupdateを用意する。
言うまでもなく、updateはcollectionに対しても定義されてて
template typename<T> void update(const collection<T*>& actors)
{
foreach(var t in actors)
update(*t);
}
collectionはstd::vector/listを汎化したもの。foreachはマクロとでも思ってもらえれば良い。
上のようになっているので、最適化によってinliningされる。
もちろん、関数呼び出しのオーバーヘッドは存在しない。