5 #ifndef LODESTAR_FUNCTIONTRAITS_HPP
6 #define LODESTAR_FUNCTIONTRAITS_HPP
12 template<
typename TType>
16 template<
typename TClass,
typename TReturn,
typename... TArgs>
19 arity =
sizeof...(TArgs)
26 static_assert(((I >= 0) && (I < arity)),
"Argument index out of range.");
27 using type = typename ::std::tuple_element<I, ::std::tuple<TArgs...>>::type;
30 using func = ::std::function<TReturn(TArgs...)>;
35 #endif //LODESTAR_FUNCTIONTRAITS_HPP