あのさー、お前らさー、newに上限付けたい?断片か防ぎたい?
言ったじゃん、カスタムアロケーターぐらい作れって。

my_vector< shot * > shots( 100 ); //上限100個
my_pool< shot > shots_pool( 100 );

shots.push_back( new( shots_pool.alloc() ) shot( player.x, player.y, enemies[i].x, enemies[i].y ) );

こうなってりゃ満足なわけ?好きにすりゃいいじゃん。
本当に、どうでもいいことばっか着目するよな。

俺はさ、タスクシステム使わないでゲーム作るとどうなるのか聞かれたから、
1) 用途や型ごとにコンテナにオブジェクトを突っ込む
2) メインループから各コンテナ内のオブジェクトを読み出して処理する
をコードで書いたまでで、
アロケーターやプールやコンテナは環境にあったもの用意すりゃいいことぐらい分かるだろ。