static_cast здесь не нужен.
return vfunc(static_cast<function>(lambda));
У std::function есть шаблонный конструктор из объекта-функтора, у которого есть operator().
Наверное, имелось в виду
return vfunc(function(lambda));
Здравствуйте, jazzer, Вы писали:
J>ну типа так (пишу в браузере):
попробуй в
https://ideone.com/
J> // объект-лямбда объект-аргумент типа argT
J> template<class L, class = decltype( ( *(L*)nullptr )( *(argT*)nullptr ) )> // SFINAE
так SFINAE точно так же к вызовам функций применимо, в чём разница?