<functional>
構築するための標準テンプレート ライブラリ (STL) 関数を定義する関数オブジェクト、上げたと、バインダーとも呼ばれる。関数オブジェクトを定義する型のオブジェクトはoperator()。関数ポインター、関数オブジェクトを指定できますが、一般的には、関数の呼び出し中に使用できるその他の情報を格納するオブジェクトが使用されます。
#include <functional>
解説
アルゴリズムは、2 種類の関数オブジェクトを必要とする: 単項およびバイナリ。単項関数オブジェクトが 1 つの引数を必要とする、バイナリ関数オブジェクトが 2 つの引数を必要とします。関数オブジェクトと関数ポインター述語として、アルゴリズムに渡すことができますが、関数のオブジェクトもあり、スコープ、柔軟性、および STL の効率を向上します。たとえば、値を必要なアルゴリズムに渡される前に、関数にバインドする場合は、[関数のポインター使用できませんでした。関数ポインターを値にバインドできる順応性のある関数オブジェクトに変換する関数のアダプター。<functional> のヘッダー 順応性のある関数オブジェクトとして呼び出されるメンバー関数を許可するメンバー関数のアダプターも含まれています。関数は入れ子にされた型の宣言の引数を指定することを持っている場合あり、戻り値の型。C++ 標準では、この適応が unary_function または binary_function 基本クラスから継承するすべての標準オブジェクト クラスにより実装されていることが必要です。既存アプリケーションをアップグレードして、STL の C++ プログラミング環境に容易に統合できるに、STL 関数オブジェクトとそのアダプターことができます。
TR1 拡張機能
次の機能は、TR1 の Visual の C++ の実装で追加されます。
A 署名を呼び出すかっこで囲まれたコンマで区切られた 0 個以上の引数の型の区切って、戻り値の型の名前です。
A ラッパーを呼び出す呼び出しラッパー型のオブジェクトです。
A 型のラッパーを呼び出すは呼び出し可能オブジェクトを保持して、そのオブジェクトに転送、呼び出し操作をサポートする型です。
A 呼び出し可能オブジェクトは、呼び出し可能な型のオブジェクトです。
A : 呼び出し可能型関数、メンバー関数へのポインター、メンバー データへのポインターまたはオブジェクトは、関数呼び出し演算子の左側にすぐに表示できるクラスの種類へのポインターです。
A ターゲット オブジェクト呼び出しラッパー オブジェクトが保持している呼び出し可能オブジェクトです。
Pseudo-function INVOKE(f, t1, t2, ..., tN) 、次のいずれかを意味します。
(t1.*f)(t2, ..., tN)時fクラスのメンバー関数へのポインター Tとt1型のオブジェクトですTまたは参照型のオブジェクトをTまたは派生型のオブジェクトへの参照T。
((*t1).*f)(t2, ..., tN)時fクラスのメンバー関数へのポインター Tとt1の前の項目に記載されている型ではありません。
t1.*f時fクラスのメンバー データへのポインター Tとt1型のオブジェクトですTまたは参照型のオブジェクトをTまたは派生型のオブジェクトへの参照T。
(*t1).*f時fクラスのメンバー データへのポインター Tとt1の前の項目に記載されている型ではありません。
f(t1, t2, ..., tN)それ以外の場合は。
Pseudo-function INVOKE(f, t1, t2, ..., tN, R)はINVOKE(f, t1, t2, ..., tN)に暗黙的に変換されたR。
呼び出しラッパーがある場合は、 弱い結果型、そのメンバーの型の型result_typeタイプに基づきますTとしては、次のように、ラッパーのターゲット オブジェクトの。
場合T関数へのポインター result_typeは、戻り値の型のシノニムですT。
場合Tメンバー関数へのポインター result_typeは、戻り値の型のシノニムですT。
場合Tデータ メンバーへのポインター result_type 、データ メンバーの宣言された型のシノニムのです。
場合Tメンバーの型を持つクラス型ですresult_typeは、 result_typeはシノニムですT::result_type。
それ以外の場合は、メンバーがないresult_type。
すべての呼び出しラッパーには、コピー コンス トラクターがあります。A 簡単な呼び出しラッパー 演算子とは、コピー コンス トラクターと代入演算子はスロー例外に割り当てられている呼び出しラッパーです。A 転送呼び出しラッパー の引数リストを使用して呼び出すことができる呼び出しラッパーですt1, t2, ..., tN、場所各tiは左辺値であります。
引数の型を持つこのヘッダーのサポート関数呼び出し演算子に定義されている呼び出しラッパー T1, T2, ..., TN、 0 <= N <= NMAX。この実装では、値のNMAX 10 です。
Classes
クラスへの呼び出しを示すためにスローされた例外を説明するoperator()で、 関数オブジェクトが空であるために、オブジェクトに失敗しました。 |
|
メンバー関数は、指定されたバイナリの関数の戻り値の否定を提供するテンプレート クラスです。 |
|
バイナリ関数の最初の引数は、指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するコンス トラクターを提供するテンプレート クラスです。 |
|
バイナリ関数の 2 番目の引数に指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するコンス トラクターを提供するテンプレート クラスです。 |
|
参照の引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らない const メンバー関数を許可するアダプター クラスです。 |
|
ポインター引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らない const メンバー関数を許可するアダプター クラスです。 |
|
参照の引数を初期化するときにバイナリ関数オブジェクトとして呼び出される単一の引数を受け取る const メンバー関数を許可するアダプター クラスです。 |
|
ポインター引数を初期化するときにバイナリ関数オブジェクトとして呼び出される単一の引数を受け取る const メンバー関数を許可するアダプター クラスです。 |
|
呼び出し可能オブジェクトをラップするクラスです。 |
|
値のハッシュ コードを計算するクラスです。 |
|
テスト クラスを呼び出すことによって、特定の種類が生成される場合は、 bind。 |
|
特定の型のプレース ホルダーの場合をテストするクラスです。 |
|
許可するアダプター クラスは、 non_const が参照の引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らないメンバー関数します。 |
|
許可するアダプター クラスは、 non_const 、ポインター引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らないメンバー関数します。 |
|
許可するアダプター クラスは、 non_const が参照の引数を初期化するときにバイナリ関数オブジェクトとして呼び出される引数を 1 つ受け取るメンバー関数します。 |
|
許可するアダプター クラスは、 non_const 、ポインター引数を初期化すると、バイナリ関数オブジェクトとして呼び出される引数を 1 つ取得するメンバー関数します。 |
|
バイナリの関数ポインターには順応性のあるバイナリ関数に変換されます。 |
|
単項関数ポインターは、順応性のある単項関数に変換します。 |
|
参照をラップするクラスです。 |
|
ラップされた呼び出し可能オブジェクトの戻り値の型を保持する構造体。 |
|
指定した単項関数の戻り値の否定はメンバー関数を提供するテンプレート クラス。 |
関数
呼び出し可能オブジェクトに引数をバインドします。 |
|
バイナリ関数の最初の引数は、指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するアダプターを作成するヘルパー テンプレート関数です。 |
|
バイナリ関数の 2 番目の引数に指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するアダプターを作成するヘルパー テンプレート関数です。 |
|
2 つのパラメーターのバイナリの AND が返されます。 |
|
2 つのパラメーターのバイナリ OR を返します。 |
|
バイナリの XOR の 2 つのパラメーターを返します。 |
|
引数から const の reference_wrapper を構築します。 |
|
単純な呼び出しラッパーを生成します。 |
|
関数オブジェクト アダプターでポインター引数を初期化するときのメンバー関数を構築するために使用するヘルパー テンプレート関数です。 |
|
関数オブジェクト アダプターへの参照の引数を初期化するときに、メンバー関数を構築するために使用するヘルパー テンプレート関数です。 |
|
単項述語の補数を返します。 |
|
2 項述語の補数を返します。 |
|
ヘルパー テンプレート関数変換単項およびバイナリ関数にポインターを単項およびバイナリの順応性のある関数をそれぞれ使用します。 |
|
引数から reference_wrapper を構築します。 |
|
2 つの function オブジェクトを交換します。 |
構造体
バイナリ関数オブジェクトを提供する派生クラスによって継承される可能性がありますの種類を定義する空の基本クラスです。 |
|
クラスは、値を指定した型の要素の部門の算術演算を実行する定義済みの関数オブジェクトを提供します。 |
|
指定した型の値がその型の別の値に等しいかどうかをテストが 2 項述語。 |
|
指定した型の値がその型の別の値より大きいかどうかをテストが 2 項述語。 |
|
指定した型の値がその型の別の値以上かどうかをテストが 2 項述語。 |
|
指定した型の値かどうかをテストが 2 項述語ではその型の別の値より小さいです。 |
|
指定した型の値型の別の値に等しいかそれより小さいかどうかをテストが 2 項述語。 |
|
クラスは、要素が指定された値型と実際のテストや結果の falsity に論理演算の組み合わせを実行する定義済みの関数オブジェクトを提供します。 |
|
クラスは、要素の指定された値型と実際のテストや結果の falsity に論理演算の否定を実行する定義済みの関数オブジェクトを提供します。 |
|
クラスは、要素が指定された値型と実際のテストや結果の falsity に論理和の操作を実行する定義済みの関数オブジェクトを提供します。 |
|
クラスは、値を指定した型の要素の減算の算術演算を実行する定義済みの関数オブジェクトを提供します。 |
|
このクラスに指定された値型の要素の剰余算術演算を実行する定義済みの関数オブジェクトを提供します。 |
|
クラスは、指定された値型の要素を乗算の算術演算を実行する、定義済みの関数オブジェクトを提供します。 |
|
クラスは、要素の値の負を返す定義済みの関数オブジェクトを提供します。 |
|
指定した型の値がその型の別の値に等しいかどうかをテストが 2 項述語。 |
|
クラスは、値を指定した型の要素に追加の算術演算を実行する定義済みの関数オブジェクトを提供します。 |
|
単項関数オブジェクトを提供する派生クラスによって継承される可能性がありますの種類を定義する空の基本クラスです。 |
オブジェクト
置き換え可能な引数のプレースホルダーです。 |
演算子
呼び出し可能オブジェクトの等価比較を実行できなくなります。 |
|
呼び出し可能オブジェクトの不等価比較を実行できなくなります。 |