GeezerVison is showing cpprefjp.github.io — functional - cpprefjp C++日本語リファレンス
最終更新日時:
2026年08月18日 09時56分31秒 (JST)
Akira Takahashi
が更新
履歴
編集
<functional>
functional
<functional>ヘッダは、関数オブジェクトに関する機能を提供する。
関数オブジェクトとは、通常の関数と同じ構文で関数呼び出しを扱えるクラスである。
単純な関数オブジェクトの構造は次のとおりである:
struct doubler {
int operator ()( int x ) const { return x * 2 ; }
};
関数オブジェクトは、関数・関数へのポインタに対して、以下のような利点がある:
状態を保持できる
(特にアルゴリズムにファンクタとして渡した場合)インライン展開が容易である
多相(オーバーロードやテンプレート)にしても関数へのポインタのように曖昧にならない
フリースタンディング
このヘッダの一部の機能が、フリースタンディング処理系でも使用できる。どの機能が使用できるかは各機能のページを参照。
多相的な関数オブジェクト
統一的な関数呼び出し
名前
説明
対応バージョン
invoke
共通の操作で関数呼び出しを行う(function template)
C++17
引数の束縛
名前
説明
対応バージョン
bind_front
関数の引数を先頭から順に部分適用する(function template)
C++20
bind_back
関数の引数を末尾から順に部分適用する(function template)
C++23
bind
関数の引数を部分適用する(function template)
C++11
is_bind_expression
型をbindの式と見なすか判定する(class template)
C++11
is_placeholder
型がプレースホルダーかどうかを判定する(class template)
C++11
placeholders
部分適用のためのプレースホルダー(namespace)
C++11
mem_fn
メンバ関数アダプタ(function template)
C++11
参照ラッパー
名前
説明
対応バージョン
reference_wrapper
テンプレートで参照を渡すためのラッパー(class template)
C++11
ref
オブジェクトへの参照を構築する(function template)
C++11
cref
オブジェクトへのconst左辺値参照を構築する(function template)
C++11
ハッシュ関数
名前
説明
対応バージョン
hash
オブジェクトを示すハッシュを計算する(class template)
C++11
算術演算関数オブジェクト
比較演算関数オブジェクト
論理演算関数オブジェクト
ビット演算関数オブジェクト
名前
説明
対応バージョン
bit_and
ビットごとの論理積(AND) (class template)
C++11
bit_or
ビットごとの論理和(OR) (class template)
C++11
bit_xor
ビットごとの排他的論理和(XOR) (class template)
C++11
bit_not
ビットごとの論理否定(NOT) (class template)
C++14
論理反転関数オブジェクト
名前
説明
対応バージョン
not_fn
任意個数の引数をとる関数オブジェクトを論理反転する (function template)
C++17
unary_negate
単項の論理反転 (class template)
C++17から非推奨 C++20で削除
not1
単項の述語を論理反転する (function template)
C++17から非推奨 C++20で削除
binary_negate
二項の論理反転 (class template)
C++17から非推奨 C++20で削除
not2
二項の述語を論理反転する (function template)
C++17から非推奨 C++20で削除
恒等写像関数オブジェクト
名前
説明
対応バージョン
identity
入力値を値カテゴリも含めてそのまま返す (class)
C++20
検索
古い関数オブジェクトアダプタ (C++11から非推奨, C++17で削除)
名前
説明
対応バージョン
unary_function
単項関数オブジェクト(class template)
C++11から非推奨 C++17で削除
binary_function
二項関数オブジェクト(class template)
C++11から非推奨 C++17で削除
pointer_to_unary_function
単項関数ポインタを関数オブジェクトに変換するアダプタ(class template)
C++11から非推奨 C++17で削除
pointer_to_binary_function
二項関数ポインタを関数オブジェクトに変換するアダプタ(class template)
C++11から非推奨 C++17で削除
ptr_fun
関数ポインタを関数オブジェクトに変換する(function template)
C++11から非推奨 C++17で削除
mem_fun_t
メンバ関数ポインタを関数オブジェクトに変換するアダプタ。 オブジェクトへのポインタに対してメンバ関数を呼び出す。(class template)
C++11から非推奨 C++17で削除
mem_fun1_t
単項メンバ関数ポインタを関数オブジェクトに変換するアダプタ。 オブジェクトへのポインタに対してメンバ関数を呼び出す。(class template)
C++11から非推奨 C++17で削除
mem_fun_ref_t
メンバ関数ポインタを関数オブジェクトに変換するアダプタ。 オブジェクトへの参照に対してメンバ関数を呼び出す。(class template)
C++11から非推奨 C++17で削除
mem_fun1_ref_t
単項メンバ関数ポインタを関数オブジェクトに変換するアダプタ。 オブジェクトへの参照に対してメンバ関数を呼び出す。(class template)
C++11から非推奨 C++17で削除
const_mem_fun_t
メンバ関数ポインタを関数オブジェクトに変換するアダプタ。 オブジェクトへのconstポインタに対してメンバ関数を呼び出す。(class template)
C++11から非推奨 C++17で削除
const_mem_fun1_t
単項メンバ関数ポインタを関数オブジェクトに変換するアダプタ。 オブジェクトへのconstポインタに対してメンバ関数を呼び出す。(class template)
C++11から非推奨 C++17で削除
mem_fun
メンバ関数ポインタを関数オブジェクトに変換する。 返される関数オブジェクトは、オブジェクトへのポインタを引数にとる。(function template)
C++11から非推奨 C++17で削除
mem_fun_ref
メンバ関数ポインタを関数オブジェクトに変換する。 返される関数オブジェクトは、オブジェクトへの参照を引数にとる。(function template)
C++11から非推奨 C++17で削除
古い関数バインダ (C++11から非推奨, C++17で削除)
名前
説明
対応バージョン
binder1st
第1引数を部分適用する関数オブジェクト(class template)
C++11から非推奨 C++17で削除
bind1st
第1引数を部分適用する(function template)
C++11から非推奨 C++17で削除
binder2nd
第2引数を部分適用する関数オブジェクト(class template)
C++11から非推奨 C++17で削除
bind2nd
第2引数を部分適用する関数オブジェクト(function template)
C++11から非推奨 C++17で削除
名前付き要件
参照