次の方法で共有


<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 です。

169de7b0.collapse_all(ja-jp,VS.110).gifClasses

bad_function_call

クラスへの呼び出しを示すためにスローされた例外を説明するoperator()で、 関数オブジェクトが空であるために、オブジェクトに失敗しました。

binary_negate

メンバー関数は、指定されたバイナリの関数の戻り値の否定を提供するテンプレート クラスです。

binder1st

バイナリ関数の最初の引数は、指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するコンス トラクターを提供するテンプレート クラスです。

binder2nd

バイナリ関数の 2 番目の引数に指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するコンス トラクターを提供するテンプレート クラスです。

const_mem_fun_ref_t

参照の引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らない const メンバー関数を許可するアダプター クラスです。

const_mem_fun_t

ポインター引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らない const メンバー関数を許可するアダプター クラスです。

const_mem_fun1_ref_t

参照の引数を初期化するときにバイナリ関数オブジェクトとして呼び出される単一の引数を受け取る const メンバー関数を許可するアダプター クラスです。

const_mem_fun1_t

ポインター引数を初期化するときにバイナリ関数オブジェクトとして呼び出される単一の引数を受け取る const メンバー関数を許可するアダプター クラスです。

機能性

呼び出し可能オブジェクトをラップするクラスです。

hash

値のハッシュ コードを計算するクラスです。

is_bind_expression

テスト クラスを呼び出すことによって、特定の種類が生成される場合は、 bind。

is_placeholder

特定の型のプレース ホルダーの場合をテストするクラスです。

mem_fun_ref_t

許可するアダプター クラスは、 non_const が参照の引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らないメンバー関数します。

mem_fun_t

許可するアダプター クラスは、 non_const 、ポインター引数を初期化すると、単項関数オブジェクトとして呼び出される引数を受け取らないメンバー関数します。

mem_fun1_ref_t

許可するアダプター クラスは、 non_const が参照の引数を初期化するときにバイナリ関数オブジェクトとして呼び出される引数を 1 つ受け取るメンバー関数します。

mem_fun1_t

許可するアダプター クラスは、 non_const 、ポインター引数を初期化すると、バイナリ関数オブジェクトとして呼び出される引数を 1 つ取得するメンバー関数します。

pointer_to_binary_function

バイナリの関数ポインターには順応性のあるバイナリ関数に変換されます。

pointer_to_unary_function

単項関数ポインターは、順応性のある単項関数に変換します。

reference_wrapper

参照をラップするクラスです。

result_of

ラップされた呼び出し可能オブジェクトの戻り値の型を保持する構造体。

unary_negate

指定した単項関数の戻り値の否定はメンバー関数を提供するテンプレート クラス。

169de7b0.collapse_all(ja-jp,VS.110).gif関数

bind

呼び出し可能オブジェクトに引数をバインドします。

bind1st

バイナリ関数の最初の引数は、指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するアダプターを作成するヘルパー テンプレート関数です。

bind2nd

バイナリ関数の 2 番目の引数に指定された値にバインドすることにより、単項関数オブジェクトにはバイナリ関数オブジェクトを変換するアダプターを作成するヘルパー テンプレート関数です。

bit_and

2 つのパラメーターのバイナリの AND が返されます。

bit_or

2 つのパラメーターのバイナリ OR を返します。

bit_xor

バイナリの XOR の 2 つのパラメーターを返します。

cref

引数から const の reference_wrapper を構築します。

mem_fn

単純な呼び出しラッパーを生成します。

mem_fun

関数オブジェクト アダプターでポインター引数を初期化するときのメンバー関数を構築するために使用するヘルパー テンプレート関数です。

mem_fun_ref

関数オブジェクト アダプターへの参照の引数を初期化するときに、メンバー関数を構築するために使用するヘルパー テンプレート関数です。

not1

単項述語の補数を返します。

not2

2 項述語の補数を返します。

ptr_fun

ヘルパー テンプレート関数変換単項およびバイナリ関数にポインターを単項およびバイナリの順応性のある関数をそれぞれ使用します。

ref

引数から reference_wrapper を構築します。

スワップ

2 つの function オブジェクトを交換します。

169de7b0.collapse_all(ja-jp,VS.110).gif構造体

binary_function

バイナリ関数オブジェクトを提供する派生クラスによって継承される可能性がありますの種類を定義する空の基本クラスです。

分割

クラスは、値を指定した型の要素の部門の算術演算を実行する定義済みの関数オブジェクトを提供します。

equal_to

指定した型の値がその型の別の値に等しいかどうかをテストが 2 項述語。

大きい

指定した型の値がその型の別の値より大きいかどうかをテストが 2 項述語。

greater_equal

指定した型の値がその型の別の値以上かどうかをテストが 2 項述語。

少ない

指定した型の値かどうかをテストが 2 項述語ではその型の別の値より小さいです。

less_equal

指定した型の値型の別の値に等しいかそれより小さいかどうかをテストが 2 項述語。

logical_and

クラスは、要素が指定された値型と実際のテストや結果の falsity に論理演算の組み合わせを実行する定義済みの関数オブジェクトを提供します。

logical_not

クラスは、要素の指定された値型と実際のテストや結果の falsity に論理演算の否定を実行する定義済みの関数オブジェクトを提供します。

logical_or

クラスは、要素が指定された値型と実際のテストや結果の falsity に論理和の操作を実行する定義済みの関数オブジェクトを提供します。

マイナス

クラスは、値を指定した型の要素の減算の算術演算を実行する定義済みの関数オブジェクトを提供します。

modulus

このクラスに指定された値型の要素の剰余算術演算を実行する定義済みの関数オブジェクトを提供します。

乗算

クラスは、指定された値型の要素を乗算の算術演算を実行する、定義済みの関数オブジェクトを提供します。

反転します。

クラスは、要素の値の負を返す定義済みの関数オブジェクトを提供します。

not_equal_to

指定した型の値がその型の別の値に等しいかどうかをテストが 2 項述語。

プラス

クラスは、値を指定した型の要素に追加の算術演算を実行する定義済みの関数オブジェクトを提供します。

unary_function

単項関数オブジェクトを提供する派生クラスによって継承される可能性がありますの種類を定義する空の基本クラスです。

169de7b0.collapse_all(ja-jp,VS.110).gifオブジェクト

_1

置き換え可能な引数のプレースホルダーです。

169de7b0.collapse_all(ja-jp,VS.110).gif演算子

演算子 = =

呼び出し可能オブジェクトの等価比較を実行できなくなります。

演算子! =

呼び出し可能オブジェクトの不等価比較を実行できなくなります。

参照

関連項目

C++ の標準ライブラリのスレッド セーフ

標準テンプレート ライブラリ

その他の技術情報

<functional> メンバー

ヘッダー ファイル