13 #ifndef EASYDELEGATE_NO_DEFERRED_CALLING
15 #include <type_traits>
18 #ifndef _INCLUDE_EASYDELEGATE_TYPES_HPP_
19 #define _INCLUDE_EASYDELEGATE_TYPES_HPP_
23 #ifndef EASYDELEGATE_NO_DEFERRED_CALLING
30 template<
int ...>
struct seq {};
38 template<
int N,
int ...S>
struct gens : gens<N-1, N-1, S...> {};
46 template<
int ...S>
struct gens<0, S...>
49 typedef seq<S...> type;
53 #ifndef EASYDELEGATE_NO_DEFERRED_CALLING
59 template <
typename... typenames>
60 using NoReferenceTuple = std::tuple<typename std::remove_reference<typenames>::type...>;
61 #endif // EASYDELEGATE_NO_DEFERRED_CALLING
64 template <
typename returnType,
typename... parameters>
68 template <
typename className,
typename returnType,
typename... parameters>
71 #endif // _INCLUDE_EASYDELEGATE_TYPES_HPP_
returnType(className::*)(parameters...) MemberMethodPointer
Helper typedef to a pointer of a class member method with the given signature.
Definition: types.hpp:69
returnType(*)(parameters...) StaticMethodPointer
Helper typedef to a pointer of a static method with the given signature.
Definition: types.hpp:65
Namespace containing all EasyDelegate functionality.
Definition: deferredcallers.hpp:20
std::tuple< typename std::remove_reference< typenames >::type...> NoReferenceTuple
A helper typedef for an std::tuple that removes the reference from referenced types.
Definition: types.hpp:60