#define TBB_PREVIEW_SERIAL_SUBSET 1
#include "tbb/parallel_for.h"
デバッグ中などに、特定の parallel_for() 呼び出しはシリアルに実行し、ほかの parallel_for() 呼び出しは並列に実行できると便利なことがあります。
tbb::serial::parallel_for 関数は、シリアル実装を使用して tbb::parallel_for API を実装します。特定の parallel_for() 呼び出しをシリアルに実行する場合、parallel_for.h の前に TBB_PREVIEW_SERIAL_SUBSET マクロを定義し、対象となる parallel_for() に tbb::serial:: プリフィクスを追加する必要があります。内部的に、シリアル実装は再帰分解と同じ法則を使用しますが、タスクをスポーンする代わりに、「実際に」再帰実行します (つまり、ボディー関数は、オリジナル範囲を 2 つに分解したサブ範囲で自身を 2 回呼び出します)。
#define TBB_PREVIEW_SERIAL_SUBSET 1 #include <tbb/parallel_for.h> Foo() { // . . . tbb::serial::parallel_for( . . . ); tbb::parallel_for( . . . ); // . . . }