16 #ifndef OPENKALMAN_GET_INDEX_DIMENSION_OF_HPP 17 #define OPENKALMAN_GET_INDEX_DIMENSION_OF_HPP 26 template<
typename T, values::index N = std::
integral_constant<std::
size_t, 0>> requires
30 template<
typename T,
typename N = std::
integral_constant<std::
size_t, 0>, std::enable_if_t<
31 coordinates::pattern<decltype(get_vector_space_descriptor(std::declval<T>(), std::declval<N>()))>,
int> = 0>
44 template<std::
size_t N,
typename T> requires requires(T t) { {get_vector_space_descriptor<N>(t)} -> coordinates::pattern; }
47 template<std::size_t N,
typename T, std::enable_if_t<
48 coordinates::pattern<decltype(get_vector_space_descriptor<N>(std::declval<T>()))>,
int> = 0>
53 return get_dimension(get_vector_space_descriptor<N>(t));
59 #endif //OPENKALMAN_GET_INDEX_DIMENSION_OF_HPP The root namespace for OpenKalman.
Definition: basics.hpp:34
constexpr bool index
T is an index value.
Definition: index.hpp:56
constexpr auto get_index_dimension_of(const T &t, N n=N{})
Get the runtime dimensions of index N of indexible T.
Definition: get_index_dimension_of.hpp:34
constexpr auto get_vector_space_descriptor(const T &t, const N &n)
Get the coordinates::pattern object for index N of indexible object T.
Definition: get_vector_space_descriptor.hpp:56