16 #ifndef OPENKALMAN_COLLECTIONS_SIZED_HPP 17 #define OPENKALMAN_COLLECTIONS_SIZED_HPP 19 #include <type_traits> 20 #ifdef __cpp_lib_ranges 31 #ifdef __cpp_lib_ranges 33 concept sized = std::ranges::sized_range<T> or requires { std::tuple_size<std::decay_t<T>>
::value; };
35 namespace detail_sized
37 template<
typename T,
typename =
void>
41 struct has_tuple_size<T,
std::void_t<decltype(std::tuple_size<std::decay_t<T>>::value)>> : std::true_type {};
50 using detail_sized::sized;
55 #endif //OPENKALMAN_COLLECTIONS_SIZED_HPP Namespace for collections.
Definition: collections.hpp:27
Definition: tuple_reverse.hpp:103
constexpr bool value
T is numerical value or is reducible to a numerical value.
Definition: value.hpp:31
Definitions implementing features of the c++ ranges library for compatibility.