task_group 拡張#
注
これらの拡張を有効にするには、TBB_PREVIEW_TASK_GROUP_EXTENSIONS マクロを 1 に定義します。
説明#
oneAPI スレッディング・ビルディング・ブロック (oneTBB) 実装は、ユーザー提供の関数オブジェクトの要件に合わせて tbb::task_group 仕様を拡張します。
API#
ヘッダー#
#include <oneapi/tbb/task_group.h>概要#
namespace oneapi {
namespace tbb {
class task_group {
public:
//関数 F の戻り値のタイプの要件のみが変更されます
template<typename F>
task_handle defer(F&& f);
//関数 F の戻り値のタイプの要件のみが変更されます
template<typename F>
task_group_status run_and_wait(const F& f);
//関数 F の戻り値のタイプの要件のみが変更されます
template<typename F>
void run(F&& f);
};
} // namespace tbb
} // namespace oneapiメンバー関数
最適化のヒントとして、F は次に実行できるタスク・オブジェクトである task_handle を返す場合があります。
注
関数によって返される task_handle は、*this task_group を使用して作成する必要があります。つまり、run メソッドが呼び出されるものに限ります。それ以外の場合は未定義の動作になります。
最適化のヒントとして、F は次に実行できるタスク・オブジェクトである task_handle を返す場合があります。
注
関数によって返される task_handle は、*this task_group を使用して作成する必要があります。つまり、run メソッドが呼び出されるものに限ります。それ以外の場合は未定義の動作になります。
最適化のヒントとして、F は次に実行できるタスク・オブジェクトである task_handle を返す場合があります。
注
関数によって返される task_handle は、*this task_group を使用して作成する必要があります。つまり、run メソッドが呼び出されるものに限ります。それ以外の場合は未定義の動作になります。
関連情報