Можно ли получить возвращаемый тип функции изнутри функции? - PullRequest
0 голосов
/ 05 сентября 2018

Можно ли простым способом получить возвращаемый тип функции внутри функции?

Например, дано:

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?

1 Ответ

0 голосов
/ 05 сентября 2018

Вызовите функцию с помощью decltype.

decltype(foo(p)) f{};
...