functions declaring c++ c++11 auto lambda perfect-forwarding

declaring - lambda function c++ 11



¿Cómo reenviar perfectamente `auto &&` en un lambda genérico? (1)

C ++ 14 soporta lambdas genéricas. Sin embargo, el código siguiente es rechazado por Clang 3.4.

#include <utility> void f(int); void f(int&); int main() { [](auto&& v) { f(std::forward<auto>(v)); }(8); // error }

¿Cómo reenviar perfectamente auto&& en un lambda genérico?


auto no es un tipo, así que no me sorprende que esto no funcione. ¿Pero no puedes usar decltype ?

[](auto&& v) { f(std::forward<decltype(v)>(v)); }(8);

Scott Meyers tiene más detalles.