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...) の結果型を決定します。ここで CallableArgs のすべての型は、完全な型、不明なバインドの配列、または場合によっては cv-qualified void です。 引数 Args... を使用して呼び出すと、このクラス テンプレートの type メンバーは、Callable の戻り値の型の名前を指定します。type メンバーが定義されるのは、評価されていないコンテキストで引数 Args... を使用して呼び出すときに、Callable を呼び出すことができる場合のみです。 それ以外の場合、このクラス テンプレートにはメンバー type はないため、コンパイル時に特定の一連の引数型に対して SFINAE テストを行うことができます。

要件

ヘッダー: <type_traits>

名前空間: std

関連項目

<type_traits>
invoke