Le type de retour d'une fonction peut-il être obtenu de manière simple dans la fonction?
Par exemple, étant donné:
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
...
}
En C++ 11, puis-je me référer au grand type de retour méchant de foo
, dans foo
lui-même, sans le répéter, à la ligne marquée // <-- here
?
Appelez la fonction avec un decltype
.
decltype(foo(p)) f{};