Могут ли параметры `auto &&` быть переадресованы?

Для функций шаблона я использую совершенную переадресацию следующим образом:

template<typename T>
void f (T && v)
{
  g (std::forward<T> (v));
}

Как улучшить параметры вперед auto && в C++14 лямбда-выражениях?

auto f = [] (auto && v)
  {
    g (std::forward<??> (v));
  };

(Пробовал в Google, но не получал никаких хороших хитов по ключевым словам, которые я выбрал)

Ответ 1

Да, они могут быть идеально переправлены с помощью decltype() specifier:

auto f = [](auto&& v)
{
    g(std::forward<decltype(v)>(v));
    //             ~~~~~~~~~~^
};

DEMO