16 #ifndef OPENKALMAN_INDEX_COLLECTION_FOR_HPP 17 #define OPENKALMAN_INDEX_COLLECTION_FOR_HPP 19 #include "coordinates/coordinates.hpp" 27 template<
typename Indices,
typename T,
typename Seq = std::make_index_sequence<collections::size_of_v<Indices>>>
30 template<
typename Indices,
typename T, std::size_t...ix>
32 : std::bool_constant<(... and (not values::size_compares_with<
33 collections::collection_element_t<ix, Indices>,
34 index_dimension_of<T, ix>,
39 #ifndef __cpp_concepts 40 template<
typename Indices,
typename Indexible,
typename =
void>
43 template<
typename Indices,
typename Indexible>
45 values::fixed_value_compares_with<collections::size_of<Indices>, stdex::dynamic_extent, &stdex::is_neq>>>
55 template<
typename Indices,
typename T>
58 collections::index<Indices> and
64 constexpr
bool index_collection_for =
65 collections::index<Indices> and
68 detail::index_collection_for_impl<Indices, T>::
value;
The size of a sized object (including a collection).
Definition: size_of.hpp:33
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45
The root namespace for OpenKalman.
Definition: basics.hpp:34
Definition: index_collection_for.hpp:28
Definition for index_dimension_of.
constexpr bool size_compares_with
T and U are sizes that compare in a particular way based on parameter comp.
Definition: size_compares_with.hpp:98
Definition for index_count.
constexpr bool fixed_value_compares_with
T has a fixed value that compares with N in a particular way based on parameter comp.
Definition: fixed_value_compares_with.hpp:74
Definition: index_collection_for.hpp:41
The minimum number of indices needed to access all the components of an object (i.e., the rank or order).
Definition: index_count.hpp:34
constexpr bool index_collection_for
Indices is a collection of indices that are compatible with indexible object T.
Definition: index_collection_for.hpp:64