#include "tbb/pipeline.h"
template<typename T, typename U> class filter_t; template<typename T, typename U, typename Func> filter_t<T,U> make_filter( filter::mode mode, const Func& f ); template<typename T, typename V, typename U> filter_t<T,U> operator&( const filter_t<T,V>& left, const filter_t<V,U>& right );
filter_t は、入出力の型を指定する厳密な型のフィルターです。filter_t は、ファンクターから、または operator& を使用して 2 つの filter_t オブジェクトを組み合わせて構築することができます。同じ filter_t オブジェクトを複数の & 表記で共有できます。
namespace tbb { template<typename T, typename U> class filter_t { public: filter_t(); filter_t( const filter_t<T,U>& rhs ); template<typename Func> filter_t( filter::mode mode, const Func& func ); void operator=( const filter_t<T,U>& rhs ); ~filter_t(); void clear(); }; template<typename T, typename U, typename Func> filter_t<T,U> make_filter( filter::mode mode, const Func& f ); template<typename T, typename V, typename U> filter_t<T,U> operator&( const filter_t<T,V>& left, const filter_t<V,U>& right ); }
メンバー | 説明 |
---|---|
filter _t() | 未定義フィルターを構築します。 注意operator& または parallel_pipeline で未定義フィルターを使用した場合の結果は不定です。 |
filter_t( const filter_t<T,U>& rhs ) | rhs のコピーを構築します。 |
template<typename Func> filter_t( filter::mode mode, const Func& f ) | ファンクター f のコピーを使用して T 型の入力値 t を U 型の出力値 u にマップする filter_t を構築します。 注parallel_pipeline は、filter_t を使用する場合、T が void でなければ、f(t) を評価して u を計算します。void の場合、u は u=f(fc) 式によって計算されます。fc は flow_control 型です。 |
void operator=( const filter_t<T,U>& rhs ) | rhs に関連するファンクターを使用するように、*this を更新します。 |
~filter_t() | filter_t を破棄します。 |
void clear() | *this を未定義フィルターに設定します。 |
template<typename T, typename U, typename Func> filter_t<T,U> make_filter(filter::mode mode, const Func& f) | 戻り値: filter_t<T,U>(mode,f) |
template<typename T, typename V, typename U> filter_t<T,U> operator& (const filter_t<T,V>& left, const filter_t<V,U>& right) | 要件: left の出力の型は right の入力の型と一致しなければなりません。 戻り値: filter_t はフィルター left と right の組み合わせを表します。この組み合わせは、left の出力値が right の入力値であるかのように動作します。 |