空のタスク

何もしないけれども、子が完了するまで待機するタスクが必要な場合があります。task.h ヘッダーファイルは、この役割を担う empty_task クラスを定義します。次に定義を示します。

// 何もしないタスク。同期に役立ちます
class empty_task: public task {
    /* オーバーライド */ task* execute() {
        return NULL;
    }
};

empty_task が良い例です。start_for::execute() メソッドで parallel_for (tbb/parallel_for.h) を呼び出します。ここでのコードは、継続渡しスタイルを使用します。2 つの子タスクを作成し、子タスクの完了時に empty_task を継続として使用します。トップレベルのルーチン parallel_for (tbb/parallel_for.h) はルートで待機します。