std::function
提供: cppreference.com
< cpp | utility | functional
![]() |
このページは、Google 翻訳を使って英語版から機械翻訳されました。
翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
Defined in header <functional>
|
||
template< class > class function; /* undefined */ |
(C++11およびそれ以降) | |
template< class R, class... Args > class function<R(Args...)> |
(C++11およびそれ以降) | |
テンプレートクラスstd::function
は汎用で多態な関数ラッパーです。 std::function
のインスタンスは任意の呼び出し可能な「ターゲット」(関数、ラムダ式、バインド式、その他の関数オブジェクト)を格納したり、コピーしたり、呼び出したりできます。
目次 |
[編集] メンバータイプ
タイプ
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
result_type
|
R
|
argument_type
|
T 場合sizeof...(Args)==1とT Args... で最初で唯一のタイプです Original: T if sizeof...(Args)==1 and T is the first and only type in Args... The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
first_argument_type
|
T1 場合sizeof...(Args)==2とT1 Args... の2つのタイプの最初のものです Original: T1 if sizeof...(Args)==2 and T1 is the first of the two types in Args... The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
second_argument_type
|
T2 場合sizeof...(Args)==2とT2 Args... の2つのタイプの2番目です Original: T2 if sizeof...(Args)==2 and T2 is the second of the two types in Args... The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[編集] メンバ関数
新しいstd::functionインスタンスを構築します Original: constructs a new std::function instance The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
std::functionインスタンスを破棄します Original: destroys a std::function instance The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
内容が割り当てられます Original: assigns the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
スワップ内容 Original: swaps the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
新しいターゲットを割り当てます Original: assigns a new target The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
有効なターゲットであればチェックが含まれています Original: checks if a valid target is contained The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
ターゲットを呼び出します Original: invokes the target The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
Original: Target access The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
typeidの格納されたターゲットのstd::functionを取得します Original: obtains the typeid of the stored target of a std::function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) | |
std::functionの格納されたターゲットへのポインタを取得します Original: obtains a pointer to the stored target of a std::function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) |
[編集] 非メンバ関数
(C++11) |
std::swapアルゴリズムを専門としています Original: specializes the std::swap algorithm The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |
std::functionとstd::nullptrを比較します Original: compares an std::function with std::nullptr The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |
[編集] ヘルパークラス
std::uses_allocator型形質を専門としています Original: specializes the std::uses_allocator type trait The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (クラステンプレートの特殊化の2つの値を比較します) |
[編集] 例
このコードを実行します
#include <functional> #include <iostream> struct Foo { Foo(int num) : num_(num) {} void print_add(int i) const { std::cout << num_+i << '\n'; } int num_; }; void print_num(int i) { std::cout << i << '\n'; } int main() { // store a free function std::function<void(int)> f_display = print_num; f_display(-9); // store a lambda std::function<void()> f_display_42 = []() { print_num(42); }; f_display_42(); // store the result of a call to std::bind std::function<void()> f_display_31337 = std::bind(print_num, 31337); f_display_31337(); // store a call to a member function std::function<void(const Foo&, int)> f_add_display = &Foo::print_add; Foo foo(314159); f_add_display(foo, 1); }
出力:
-9 42 31337 314160
[編集] 参照
(C++11) |
空のstd::functionを呼び出すときに例外がスローされます Original: the exception thrown when invoking an empty std::function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (クラス) |
(C++11) |
メンバへのポインタの関数オブジェクトを作成します Original: creates a function object out of a pointer to a member The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |