std::result_of
From Cppreference
Defined in header <type_traits>
|
||
template< class >
class result_of; //not defined |
(1) | (C++11 feature) |
template< class F, class... ArgTypes >
class result_of<F(ArgTypes...)>; |
(2) | (C++11 feature) |
Deduces the return type of a function call expression at compile type.
Contents |
[edit] Member types
Member type | Definition |
type
|
the return type of the function F if called with the arguments ArgTypes...
|
[edit] Equivalent definition
template<class> class result_of; template<class F, class... ArgTypes> struct result_of<F(ArgTypes...)> { typedef decltype( std::declval<F>()(std::declval<ArgTypes>()...) ) type; }; |
[edit] Example
struct S { double operator()(char, int&); }; int main() { std::result_of<S(char, int&)>::type f = 3.14; // f has type double }
[edit] See also
|
obtains the type of expression in unevaluated context (function template) |