std::result_of
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <type_traits> 中定义
|
||
template< class > class result_of; //not defined |
(1) | (C++11 起) |
template< class F, class... ArgTypes > class result_of<F(ArgTypes...)>; |
(2) | (C++11 起) |
推导出一个函数调用表达式的返回值类型在编译的时候.
原文:
Deduces the return type of a function call expression at compile time.
目录 |
[编辑] 会员类型
会员类型
|
Definition |
type
|
返回类型的函数
F 如果调用参数ArgTypes... 原文: the return type of the function F if called with the arguments ArgTypes... |
[编辑] 可能的实现
template<class> struct result_of; template<class F, class... ArgTypes> struct result_of<F(ArgTypes...)> { typedef decltype( std::declval<F>()(std::declval<ArgTypes>()...) ) type; }; |
[编辑] 示例
struct S { double operator()(char, int&); }; int main() { std::result_of<S(char, int&)>::type f = 3.14; // f has type double }
[编辑] 另请参阅
(C++11) |
在未经评估的情况下获得了表达式的类型 原文: obtains the type of expression in unevaluated context (函数模板) |