7#ifndef CHAISCRIPT_CALLABLE_TRAITS_HPP_
8#define CHAISCRIPT_CALLABLE_TRAITS_HPP_
16 template<
typename Class,
typename ... Param>
19 template<
typename ... Inner>
20 std::shared_ptr<Class>
operator()(Inner&& ... inner)
const {
21 return std::make_shared<Class>(std::forward<Inner>(inner)...);
25 template<
typename Ret,
typename Class,
typename ... Param>
30 template<
typename ... Inner>
32 return (o.*
m_func)(std::forward<Inner>(inner)...);
38 template<
typename Ret,
typename ... Param>
43 template<
typename ... Inner>
45 return (
m_func)(std::forward<Inner>(inner)...);
51 template<
typename Ret,
typename Class,
typename ... Param>
56 template<
typename ... Inner>
58 return (o.*
m_func)(std::forward<Inner>(inner)...);
69 template<
typename Ret,
typename ... Params>
72 static const size_t arity =
sizeof...(Params);
81 template<
typename Ret,
typename ... Params>
88 template<
typename Ret,
typename T,
typename ... Params>
Definition callable_traits.hpp:14
Boxed_Value dispatch(const Funcs &funcs, const std::vector< Boxed_Value > &plist, const Type_Conversions_State &t_conversions)
Definition proxy_functions.hpp:936
Namespace chaiscript contains every API call that the average user will be concerned with.
Definition GameApi_bm.cc:4579
static const size_t arity
Definition callable_traits.hpp:72
Definition callable_traits.hpp:66
Definition callable_traits.hpp:98
Function_Signature< decltype(&T::operator())>::Signature Signature
Definition callable_traits.hpp:99
Function_Signature< decltype(&T::operator())>::Return_Type Return_Type
Definition callable_traits.hpp:100
Ret operator()(Class &o, Inner &&... inner) const
Definition callable_traits.hpp:57
Caller(Ret(Class::*t_func)(Param...))
Definition callable_traits.hpp:54
Ret(Class::* m_func)(Param...)
Definition callable_traits.hpp:61
Ret(Class::* m_func)(Param...) const
Definition callable_traits.hpp:35
Const_Caller(Ret(Class::*t_func)(Param...) const)
Definition callable_traits.hpp:28
Ret operator()(const Class &o, Inner &&... inner) const
Definition callable_traits.hpp:31
Definition callable_traits.hpp:18
std::shared_ptr< Class > operator()(Inner &&... inner) const
Definition callable_traits.hpp:20
Fun_Caller(Ret(*t_func)(Param...))
Definition callable_traits.hpp:41
Ret(* m_func)(Param...)
Definition callable_traits.hpp:48
Ret operator()(Inner &&... inner) const
Definition callable_traits.hpp:44
Ret Return_Type
Definition callable_traits.hpp:84
Ret Signature(Params...)
Definition callable_traits.hpp:85
Ret Return_Type
Definition callable_traits.hpp:91
Ret Signature(Params...)
Definition callable_traits.hpp:92
Definition callable_traits.hpp:78