invoke_result クラス
コンパイル時に指定された引数型を受け取る呼び出し可能型の戻り値の型を決定します。 C++17 で追加されました。
構文
template <class Callable, class... Args>
struct invoke_result<Callable(Args...)>;
// Helper type
template<class Callable, class... Args>
using invoke_result_t = typename invoke_result<Callable, Args...>::type;
パラメーター
呼び出し
照会する呼び出し可能型。
Args
照会する呼び出し可能型の引数リストの種類。
解説
このテンプレートを使用して、コンパイル時に Callable(Args...) の結果型を決定します。ここで Callable と Args のすべての型は、完全な型、不明なバインドの配列、または場合によっては cv-qualified void
です。 引数 Args... を使用して呼び出すと、このクラス テンプレートの type
メンバーは、Callable の戻り値の型の名前を指定します。type
メンバーが定義されるのは、評価されていないコンテキストで引数 Args... を使用して呼び出すときに、Callable を呼び出すことができる場合のみです。 それ以外の場合、このクラス テンプレートにはメンバー type
はないため、コンパイル時に特定の一連の引数型に対して SFINAE テストを行うことができます。
要件
ヘッダー: <type_traits>
名前空間: std