30 #include <type_traits>
38 template <
typename Container >
42 decltype( std::begin( std::declval< std::add_lvalue_reference_t< Container > >() ) );
45 template <
typename Container >
51 template <
typename Container >
55 decltype(
std::data( std::declval< std::add_lvalue_reference_t< Container > >() ) );
58 template <
typename Container >
70 template < std::ranges::borrowed_range T >
77 template <
typename T >
82 template <
typename T >
87 template <
typename... >
90 template <
typename T,
typename... Ts >
91 struct are_same< T, Ts... > : std::conjunction< std::is_same< T, Ts >... >
100 template <
typename... Ts >
105 template <
typename T,
typename Tuple >
108 template <
typename T,
typename... Us >
109 struct tuple_has_type< T, std::tuple< Us... > > : std::disjunction< std::is_same< T, Us >... >
113 template <
typename T,
typename... Us >
120 template <
typename >
125 template <
typename... T >
131 template <
typename T >
136 template <
typename T >
143 template <
typename >
148 template <
typename T, std::
size_t N >
154 template <
typename T >
159 template <
typename T >
166 template <
typename >
171 template <
typename T >
177 template <
typename T >
182 template <
typename T >
190 template <
typename >
193 template <
typename T, std::
size_t N >
196 static constexpr std::size_t value =
N;
199 template <
typename... Ts >
202 static constexpr std::size_t value = std::tuple_size_v< std::tuple< Ts... > >;
206 template <
typename T >
212 template <
typename T >
217 template <
typename Signature >
220 template <
typename ReturnType,
typename Class,
typename... Args >
229 template <
typename ReturnType,
typename Class,
typename... Args >
235 template <
typename ReturnType,
typename... Args >
243 template <
typename Callable >
245 struct signature_of< Callable > : signature_of< decltype( &Callable::operator() ) >
MIT License.
Definition: impl.h:31
ReturnType(Args...) signature
Definition: base.h:240
typename data_iterator_of< Container >::type data_iterator_of_t
Definition: base.h:59
constexpr bool is_std_array_v
Definition: base.h:160
std::tuple< Args... > args_type
Definition: base.h:239
constexpr pointer data() noexcept
Returns pointer to first item of the storage.
Definition: static_storage.h:108
constexpr std::size_t static_size_v
Marked deprecated on 19.4.2021.
Definition: base.h:213
constexpr bool is_std_tuple_v
Definition: base.h:137
constexpr bool tuple_has_type_v
Definition: base.h:114
typename iterator_of< Container >::type iterator_of_t
Definition: base.h:46
constexpr bool is_std_vector_v
Definition: base.h:183
decltype(std::data(std::declval< std::add_lvalue_reference_t< Container > >())) type
Definition: base.h:55
requires(!range_container< Container >) const expr std
Returns index of an element in tuple 't', for which call to predicate f(x) holds true,...
Definition: algorithm.h:127
ReturnType return_type
Definition: base.h:238
decltype(std::begin(std::declval< std::add_lvalue_reference_t< Container > >())) type
Definition: base.h:42
constexpr bool are_same_v
Definition: base.h:101
N
Definition: static_storage.h:97
constexpr bool is_view_v
Definition: base.h:83
ReturnType(Args...) signature
Definition: base.h:226
std::tuple< Args... > args_type
Definition: base.h:225
Class class_type
Definition: base.h:224
ReturnType return_type
Definition: base.h:223