【发布时间】:2016-06-20 10:19:00
【问题描述】:
在必须推断函数调用结果类型的上下文中,C++ 似乎更乐意帮助我们,提供(至少据我所知以下)两种解决方案:
-
result of 类型特征:
std::result_of<F(Args...)>::type -
核心语言语法:
decltype(std::declval<F>()(std::declval<Args>()...);
我的问题是,两者之间有什么区别?是否存在一个不能被另一个替代的上下文,如果不是,为什么我们需要一个类型特征来做一些语言可以开箱即用的事情?
【问题讨论】:
-
其实,我不确定这是不是骗子。 That one 通常是关于
decltype。这一个专门在函数调用的上下文中。
标签: c++ c++14 typetraits