首页 > C++11/14 有什么技巧能在函数内部获取返回类型么?

C++11/14 有什么技巧能在函数内部获取返回类型么?

比如
int fn()
{
    // 这里如何动态获取返回类型int。需要定义一个和返回类型相同的变量。
}

并不同意 @孙明琦 的观点。我们现在把问题简化成四种情况:

template <typename T, typename U>
auto fn(T a, U b) { return a + b; }

显然可知,这里的 auto == decltype(a + b),所以我们仍然能够直接指定该变量的类型为 decltype(a + b).

综上所述,我并不认为 C++ 有什么需要「动态获取」的类型,一切都必须确定,毕竟强类型。


这样

decltype(fun())

auto, decltype


std::result_of


动态获取?不可能,C++没有反射(RTTI除外)
其他回答所说的的decltype和std::result_of都是静态的,编译时确定,应该也能符合你的要求


用decltype


auto fn() -> decltype(expression)
{

   return expression

}

【热门文章】
【热门文章】