“auto&&”参数可以完美转发吗?

时间:2015-06-10 21:39:50

标签: c++ c++14 perfect-forwarding

对于模板功能,我使用这样的完美转发:

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

如何在auto && lambda表达式中完善前向C++14参数?

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

(试图google for it但但对我选择的关键字没有任何好评)

1 个答案:

答案 0 :(得分:13)

是的,它们可以通过decltype()说明符完美转发:

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

DEMO