名前空間
変種
操作

関数オブジェクト

提供: cppreference.com
< cpp‎ | utility
 
 
 
関数オブジェクト
関数ラッパー
(C++11)
(C++11)
束縛
(C++11)
関数呼び出し
(C++17)
参照ラッパー
(C++11)(C++11)
演算子ラッパー
否定子
(非推奨)
(非推奨)

(非推奨)
(非推奨)
検索子
古いバインダとアダプタ
(C++17以前)
(C++17以前)
(C++17以前)
(C++17以前)
(C++17以前)(C++17以前)(C++17以前)(C++17以前)
(C++17以前)(C++17以前)
(C++17以前)(C++17以前)

(C++17以前)
(C++17以前)(C++17以前)(C++17以前)(C++17以前)
 

関数オブジェクトは関数呼び出し演算子が定義されている任意のオブジェクトです。 C++ は多数の組み込みの関数オブジェクトと新しい関数オブジェクトの作成や操作に対するサポートが提供されます。

目次

[編集] 関数ラッパー

std::function は任意の関数オブジェクトの格納に対するサポートを提供します。

(C++11)
指定された関数呼び出しシグネチャを持つ任意の型の呼び出し可能オブジェクトをラップします
Original:
wraps callable object of any type with specified function call signature
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(クラステンプレート) [edit]
空の std::function を呼び出したときに投げられる例外
(クラス) [edit]
(C++11)
メンバポインタから関数オブジェクトを作成します
(関数テンプレート) [edit]

[編集] 関数呼び出し

std::invoke は任意の Callable オブジェクトを指定した引数で呼び出すことができます。

(C++17)
任意の Callable なオブジェクトを指定された引数で呼びます
(関数テンプレート) [edit]

[編集] 束縛

std::bind関数の部分適用、つまり新しい関数を生成するための関数への引数束縛に対するサポートを提供します。

(C++11)
関数オブジェクトに1つ以上の引数をバインドします
(関数テンプレート) [edit]
オブジェクトが std::bind 式であるか、 std::bind 式として使用できることを表します
(クラステンプレート) [edit]
オブジェクトが標準のプレースホルダであるか、プレースホルダとして使用できることを表します
(クラステンプレート) [edit]
名前空間 std::placeholders で定義
std::bind 式におけるバインドされない引数のためのプレースホルダ
(定数) [edit]

[編集] 否定子

std::not_fn は呼び出し可能なオブジェクトの結果を否定する関数オブジェクトを作成します。

(C++17)
保持する関数オブジェクトの結果の否定を返す関数オブジェクトを作成します
(関数テンプレート) [edit]
(deprecated in C++17)
保持する1引数述語の否定を返すラッパー関数オブジェクト
(クラステンプレート) [edit]
(deprecated in C++17)
保持する2引数述語の否定を返すラッパー関数オブジェクト
(クラステンプレート) [edit]
(deprecated in C++17)
カスタム std::unary_negate オブジェクトを構築します
(関数テンプレート) [edit]
(deprecated in C++17)
カスタム std::binary_negate オブジェクトを構築します
(関数テンプレート) [edit]

[編集] 検索子

いくつかの文字列検索アルゴリズムを実装する検索子が提供され、直接または std::search と共に使用することができます。

標準 C++ ライブラリの検索アルゴリズムの実装
(クラステンプレート) [edit]
ボイヤー・ムーア検索アルゴリズムの実装
(クラステンプレート) [edit]
ボイヤー・ムーア・ホースプール検索アルゴリズムの実装
(クラステンプレート) [edit]

[編集] 参照ラッパー

参照ラッパーを使用すると参照引数をコピー可能な関数オブジェクトに格納できます。

CopyConstructibleCopyAssignable な参照ラッパー
(クラステンプレート) [edit]
(C++11)(C++11)
引数から推定される型の std::reference_wrapper を作成します
(関数テンプレート) [edit]

[編集] 演算子関数オブジェクト

一般的な算術演算子および論理演算子を表す関数オブジェクトがいくつか定義されています。

算術演算子
x + y を実装する関数オブジェクト
(クラステンプレート) [edit]
x - y を実装する関数オブジェクト
(クラステンプレート) [edit]
x * y を実装する関数オブジェクト
(クラステンプレート) [edit]
x / y を実装する関数オブジェクト
(クラステンプレート) [edit]
x % y を実装する関数オブジェクト
(クラステンプレート) [edit]
-x を実装する関数オブジェクト
(クラステンプレート) [edit]
比較
x == y を実装する関数オブジェクト
(クラステンプレート) [edit]
x != y を実装する関数オブジェクト
(クラステンプレート) [edit]
x > y を実装する関数オブジェクト
(クラステンプレート) [edit]
x < y を実装する関数オブジェクト
(クラステンプレート) [edit]
x >= y を実装する関数オブジェクト
(クラステンプレート) [edit]
x <= y を実装する関数オブジェクト
(クラステンプレート) [edit]
論理演算子
x && y を実装する関数オブジェクト
(クラステンプレート) [edit]
x || y を実装する関数オブジェクト
(クラステンプレート) [edit]
!x を実装する関数オブジェクト
(クラステンプレート) [edit]
ビット演算子
x & y を実装する関数オブジェクト
(クラステンプレート) [edit]
x | y を実装する関数オブジェクト
(クラステンプレート) [edit]
x ^ y を実装する関数オブジェクト
(クラステンプレート) [edit]
(C++14)
~x を実装する関数オブジェクト
(クラステンプレート) [edit]

[編集] 古いバインダとアダプタ

以前提供されていた関数オブジェクトサポートのためのいくつかのユーティリティは C++11 で非推奨になり C++17 で削除されました。

基本
(C++17で削除)
アダプタ互換な1引数関数の基本クラス
(クラステンプレート) [edit]
(C++17で削除)
アダプタ互換な2引数関数の基本クラス
(クラステンプレート) [edit]
バインダ
(C++17で削除)
2引数関数とその実引数の1個を保持する関数オブジェクト
(クラステンプレート) [edit]
(C++17で削除)
2引数関数に実引数を1個束縛します
(関数テンプレート) [edit]
関数アダプタ
1引数関数へのポインタに対するアダプタ互換なラッパー
(クラステンプレート) [edit]
2引数関数へのポインタに対するアダプタ互換なラッパー
(クラステンプレート) [edit]
(C++17で削除)
関数ポインタからアダプタ互換な関数オブジェクトを作成します
(関数テンプレート) [edit]
無引数または1引数のメンバ関数へのポインタに対するラッパー。 オブジェクトへのポインタを渡して呼び出すことができます
(クラステンプレート) [edit]
(C++17で削除)
メンバ関数ポインタからラッパーを作成します。 オブジェクトへのポインタを渡して呼び出すことができます
(関数テンプレート) [edit]
無引数または1引数のメンバ関数ポインタに対するラッパー。 オブジェクトの参照を渡して呼びだすことができます
(クラステンプレート) [edit]
(C++17で削除)
メンバ関数ポインタからラッパーを作成します。 オブジェクトの参照を渡して呼び出すことができます
(関数テンプレート) [edit]