42 static std::true_type test ( U * data )
43 requires ( std::is_pointer_v <
decltype ( data->clone ( ) ) > );
44 static std::false_type test ( ... );
50 static const bool value =
decltype ( has_clone::test ( std::declval < std::decay_t < T > * > ( ) ) )::
value;
63 template <
class F,
class ... Ts,
typename =
decltype ( std::declval < F > ( ) ( std::declval < Ts > ( ) ... ) ) >
87 template <
class F,
class ... Ts >
struct supports < F ( Ts ... ) > : decltype ( supports_test ( std::declval < F > ( ), std::declval < Ts > ( ) ... ) ) { };
98 template <
typename T,
typename ... Ts >
99 using is_in = std::integral_constant < bool, ( std::is_same < T, Ts >::value || ... ) >;
110 template <
typename T,
typename ... Ts >
119 template <
typename T >
120 struct index_in < T > : std::integral_constant < size_t, 0 > { };
128 template <
typename T,
typename U,
typename ... Ts >
129 struct index_in < T, U, Ts ... > : std::integral_constant < size_t, index_in < T, Ts ... >::value + 1 > { };
139 template <
typename T,
typename ... Ts >
140 struct index_in < T, T, Ts ... > : std::integral_constant < size_t, 0 > { };
144 template <
bool value>
145 using boolean =
typename std::conditional < value, std::true_type, std::false_type >::type;
147 template <
class ... Ts >
160 template <
class R,
class ... Ts >
164 template <
class R,
class ... Ts >
169 template <
typename T >
174 template <
typename T >
Class extending the reference wrapper class from the standard library. Original reason is to allow it...
Definition: functional.hpp:108
Definition: sigHandler.cpp:20
std::true_type supports_test(const F &, const Ts &...)
Positive supports test implementation. The test is designed to detect call availability on callable F...
std::integral_constant< bool,(std::is_same< T, Ts >::value||...) > is_in
Trait to test whether type T is in a types pack. The trait provides field value set to true if the ty...
Definition: type_traits.hpp:99
Definition: FordFulkerson.hpp:16
T type
Definition: type_traits.hpp:157
void type
Definition: type_traits.hpp:152
Definition: type_traits.hpp:148
Type trait to determine existence of clone method. A boolean field namd value is set to true if provi...
Definition: type_traits.hpp:39
static const bool value
True if the type decayed type T has clone method.
Definition: type_traits.hpp:50
Trait to get index of type T is in a types pack. The trait provides field value set to an integral va...
Definition: type_traits.hpp:111
T & type
Definition: type_traits.hpp:176
Definition: type_traits.hpp:170
T type
Definition: type_traits.hpp:171
Definition: type_traits.hpp:77