task_group 拡張#

これらの拡張を有効にするには、TBB_PREVIEW_TASK_GROUP_EXTENSIONS マクロを 1 に定義します。

説明#

oneAPI スレッディング・ビルディング・ブロック (oneTBB) 実装は、ユーザー提供の関数オブジェクトの要件に合わせて tbb::task_group 仕様を拡張します。

API#

概要#

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

メンバー関数

template<typename F>
task_handle defer(F &&f)#

最適化のヒントとして、F は次に実行できるタスク・オブジェクトである task_handle を返す場合があります。

関数によって返される task_handle は、*this task_group を使用して作成する必要があります。つまり、run メソッドが呼び出されるものに限ります。それ以外の場合は未定義の動作になります。

template<typename F>
task_group_status run_and_wait(const F &f)#

最適化のヒントとして、F は次に実行できるタスク・オブジェクトである task_handle を返す場合があります。

関数によって返される task_handle は、*this task_group を使用して作成する必要があります。つまり、run メソッドが呼び出されるものに限ります。それ以外の場合は未定義の動作になります。

template<typename F>
void run(F &&f)#

最適化のヒントとして、F は次に実行できるタスク・オブジェクトである task_handle を返す場合があります。

関数によって返される task_handle は、*this task_group を使用して作成する必要があります。つまり、run メソッドが呼び出されるものに限ります。それ以外の場合は未定義の動作になります。

関連情報