R operator()(ArgTypes... args) /*cv*/ /*ref*/ noexcept(/*noex*/);
概要
関数を呼び出す。
operator()
のCV修飾子 cv, 参照修飾子 ref, noexcept例外指定 noex は、copyable_function
に指定するテンプレートパラメータR(ArgTypes...)
部のものと等しい。
説明用のプレースホルダ inv-quals を次のように定義する :
- ref が空(参照修飾無し)ならば、cv
&
- そうでなければ、cv ref
事前条件
*this
は関数ポインタまたは関数オブジェクトを保持していること。
効果
*this
が保持しているF
型の関数ポインタまたは関数オブジェクトf
に対して、INVOKE<R>(static_cast<F /*inv-quals*/>(f), std::forward<ArgTypes>(args)...)
を行う。
戻り値
R
型がvoid
の場合は何も返さない。そうでなければ、関数呼び出しの戻り値を返す。
例
#include <iostream>
#include <functional>
int ident(int x)
{ return x; }
int main()
{
std::copyable_function<int(int)> f = ident;
// 関数呼び出し : 保持しているident()関数を呼び出す
int result = f(1);
std::cout << result << std::endl;
}
出力
1
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??