>>324-326
迷っておりますなw

まず一つ言うが、>>326のタスクシステムはCのタスクシステムよりうんこだから無視せい。w
真にCのタスクをC++に移植するならば、
ワーカークラスのインスタンスポインタとメソッドポインタのペアをリスト化しなきゃならん。

個人的には初心に戻ってオブジェクト指向的に考えることを勧めるよん。

キャラクタはどんな情報をもち、何をするのか?→位置情報を持ち、移動や描画を行う
class Character {
 Vector2 m_pos;
public:
 Vector2 getPosition() { return m_pos; }
 virtual void move() = 0;
 virtual void render() = 0;
};

キャラクタのリストは誰が保持するのか?→ゲームの世界が保持して管理する
ゲームの世界はどんな機能がある?→世界の時間を一定量進めるとか、世界全体を描画するとか
class World {
 list<Character*> m_characters;
public:
 updateOneFrame() { for(...); it->move(); }
 renderScene() { for(...); it->render(); }
};

こんなんでよいではないか、と思うけどネェ。