可以在函数内以简单的方式获得函数的返回类型吗?
例如,给定:
template <typename P>
static inline auto foo(P p) -> typename std::remove_reference<decltype(*p)>::type {
typename std::remove_reference<decltype(*p)>::type f{}; // <-- here
...
}
在C ++ 11中,我是否可以在标记为foo
的行中引用foo
内的// <-- here
本身,而不必重复它呢?
答案 0 :(得分:50)
使用decltype
调用函数。
decltype(foo(p)) f{};