17 #ifndef MIRAL_LAMBDA_AS_FUNCTION_H
18 #define MIRAL_LAMBDA_AS_FUNCTION_H
26 template <
class F>
struct FunctionType;
28 template<
typename Lambda,
typename Return,
typename... Arg>
29 struct FunctionType<Return (Lambda::*)(Arg...)> {
using type = std::function<Return(Arg...)>; };
31 template<
typename Lambda,
typename Return,
typename... Arg>
32 struct FunctionType<Return (Lambda::*)(Arg...)
const> {
using type = std::function<Return(Arg...)>; };
35 template<
typename Lambda>
38 return typename detail::FunctionType<
decltype(&Lambda::operator())>::type(std::forward<Lambda>(lambda));