diff --git a/include/chaiscript/dispatchkit/callable_traits.hpp b/include/chaiscript/dispatchkit/callable_traits.hpp index 4b61b088..8d7936d2 100644 --- a/include/chaiscript/dispatchkit/callable_traits.hpp +++ b/include/chaiscript/dispatchkit/callable_traits.hpp @@ -25,10 +25,10 @@ namespace chaiscript { template struct Const_Caller { - explicit Const_Caller(Ret (Class::*t_func)(Param...) const) : m_func(t_func) {} + constexpr explicit Const_Caller(Ret (Class::*t_func)(Param...) const) : m_func(t_func) {} template - Ret operator()(const Class &o, Inner&& ... inner) const { + constexpr Ret operator()(const Class &o, Inner&& ... inner) const { return (o.*m_func)(std::forward(inner)...); } @@ -38,10 +38,10 @@ namespace chaiscript { template struct Fun_Caller { - explicit Fun_Caller(Ret( * t_func)(Param...) ) : m_func(t_func) {} + constexpr explicit Fun_Caller(Ret( * t_func)(Param...) ) : m_func(t_func) {} template - Ret operator()(Inner&& ... inner) const { + constexpr Ret operator()(Inner&& ... inner) const { return (m_func)(std::forward(inner)...); } @@ -51,10 +51,10 @@ namespace chaiscript { template struct Caller { - explicit Caller(Ret (Class::*t_func)(Param...)) : m_func(t_func) {} + constexpr explicit Caller(Ret (Class::*t_func)(Param...)) : m_func(t_func) {} template - Ret operator()(Class &o, Inner&& ... inner) const { + constexpr Ret operator()(Class &o, Inner&& ... inner) const { return (o.*m_func)(std::forward(inner)...); }