21namespace templa::traits
41 using type = strip<T>::type;
47 using type = strip<T>::type;
53 using type = strip<T>::type;
59 using type = strip<T>::type;
65 using type = strip<T>::type;
71 using type = strip<T>::type;
75 struct strip<const volatile T *>
77 using type = strip<T>::type;
125 template <std::
size_t N>
128 static_assert(N <
arity,
"error: invalid parameter index.");
140 template <
typename R,
typename... Args>
147 static constexpr std::size_t
arity =
sizeof...(Args);
153 template <std::
size_t N>
156 static_assert(N <
arity,
"error: invalid parameter index.");
158 using type =
typename std::tuple_element<N, std::tuple<Args...>>
::type;
165 template <
class R,
class... Args>
173 template <
class C,
class R,
class... Args>
181 template <
class C,
class R,
class... Args>
189 template <
class C,
class R>
Retrieves the type of the N-th argument.
Definition traits.hpp:127
typename call_type::template argument< N+1 >::type type
The type of the N-th argument.
Definition traits.hpp:130
Retrieves the type of the N-th argument.
Definition traits.hpp:155
typename std::tuple_element< N, std::tuple< Args... > >::type type
Type of the N-th argument.
Definition traits.hpp:158
R return_type
Return type of the function.
Definition traits.hpp:144
static constexpr std::size_t arity
Number of function parameters.
Definition traits.hpp:147
Primary template for function traits. Specialization used to extract traits from functor types (e....
Definition traits.hpp:110
typename call_type::return_type return_type
Definition traits.hpp:116
static constexpr std::size_t arity
Definition traits.hpp:119
Recursively strips const, volatile qualifiers and pointers from a type.
Definition traits.hpp:34
strip< T >::type strip_t
Helper alias for strip.
Definition traits.hpp:90