16 #ifndef OPENKALMAN_INDEX_RANGE_FOR_HPP 17 #define OPENKALMAN_INDEX_RANGE_FOR_HPP 19 #include <type_traits> 20 #ifdef __cpp_lib_ranges 28 #ifndef __cpp_lib_ranges 31 template<
typename Indices,
typename Indexible,
typename =
void>
34 template<
typename Indices,
typename Indexible>
39 template<
typename Indices,
typename Indexible,
typename =
void>
42 template<
typename Indices,
typename Indexible>
44 collections::size_of<Indices>::value == dynamic_size or index_count<Indexible>::value == dynamic_size or
55 template<
typename Indices,
typename T>
56 #ifdef __cpp_lib_ranges 58 indexible<T> and std::ranges::input_range<std::decay_t<Indices>> and
59 values::index<std::ranges::range_value_t<Indices>> and
60 interface::get_component_defined_for<T, T, Indices> and
62 collections::size_of_v<Indices> >= index_count_v<T>);
64 constexpr
bool index_range_for =
67 interface::get_component_defined_for<T, T, Indices> and
73 #endif //OPENKALMAN_INDEX_RANGE_FOR_HPP constexpr bool index_range_for
Indices is a std::ranges::sized_range of indices that are compatible with indexible object T...
Definition: index_range_for.hpp:64
Definition: tuple_reverse.hpp:103
constexpr bool value
T is numerical value or is reducible to a numerical value.
Definition: value.hpp:31
The root namespace for OpenKalman.
Definition: basics.hpp:34
Definition: index_range_for.hpp:32
Definitions implementing features of the c++ ranges library for compatibility.
The minimum number of indices need to access all the components of an object.
Definition: index_count.hpp:33
Definition: index_range_for.hpp:40
constexpr std::size_t dynamic_size
A constant indicating that a size or index is dynamic.
Definition: global-definitions.hpp:33