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
要查詢之可呼叫類型的引數清單類型。
備註
使用此範本來判斷編譯時間的結果類型 (ArgTypes
),其中 Fn 是可呼叫的類型Fn
、函式的參考,或使用 ArgTypes 中型別的自變數清單叫用。 如果type
未評估的表達式std::invoke(declval<Fn>(), declval<ArgTypes>()...)
格式良好,類別範本的成員會為的結果型decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
別命名。 否則,類別樣本沒有成員 type
。 參數套件 ArgTypes 中的類型 Fn 和所有類型必須是完整類型、void
或未知系結的陣列。 在 C++17 中被取代為invoke_result。
需求
標頭:<type_traits>
命名空間:std