result_of クラス
指定された引数型を受け取る呼び出し可能型の戻り値の型を決定します。 C++ 14 で追加され、C++17 で非推奨となりました。
構文
template<class>
struct result_of; // Causes a static assert
template <class Fn, class... ArgTypes>
struct result_of<Fn(ArgTypes...)>;
// Helper type
template<class T>
using result_of_t = typename result_of<T>::type;
パラメーター
Fn
照会する呼び出し可能型。
ArgTypes
照会する呼び出し可能型の引数リストの種類。
解説
このテンプレートを使用して、コンパイル時に、結果の型 Fn
(ArgTypes
) を指定します。ここで、Fn は呼び出し可能型、関数への参照、または ArgTypes の型の引数リストを使用して呼び出される呼び出し可能型への参照です。 評価されていない式 std::invoke(declval<Fn>(), declval<ArgTypes>()...)
が整形式の場合、クラス テンプレートの type
メンバーによって、decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
の結果の型が指定されます。 それ以外の場合、このクラス テンプレートはメンバー type
を持ちません。 Fn 型とパラメーター パック ArgTypes のすべての型は、完全な型、void
、または不明なバインドの配列にする必要があります。 C++17 での invoke_result を推奨するために、非推奨とされました。
要件
ヘッダー: <type_traits>
名前空間: std