16 #ifndef OPENKALMAN_COORDINATE_SIZE_OF_HPP 17 #define OPENKALMAN_COORDINATE_SIZE_OF_HPP 19 #include <type_traits> 34 struct dimension_of : std::integral_constant<std::size_t, dynamic_size> {};
36 template<
typename T,
typename =
void>
41 #ifndef __cpp_concepts 43 struct dimension_of<T,
std::enable_if_t<not values::fixed<decltype(get_dimension(std::declval<std::decay_t<T>>()))>>>
44 : std::integral_constant<std::size_t, dynamic_size> {};
49 template<pattern T> requires values::fixed<decltype(get_dimension(std::declval<std::decay_t<T>>()))>
55 : std::integral_constant<std::size_t, values::to_number(get_dimension(std::decay_t<T>{}))> {};
67 #endif //OPENKALMAN_COORDINATE_SIZE_OF_HPP Definition for values::to_number.
Definition: tuple_reverse.hpp:103
The size of a coordinates::pattern.
Definition: dimension_of.hpp:37
constexpr auto get_dimension(const Arg &arg)
Get the vector dimension of coordinates::pattern Arg.
Definition: get_dimension.hpp:55
Definition: compares_with.hpp:28
constexpr auto dimension_of_v
Helper template for coordinates::dimension_of.
Definition: dimension_of.hpp:62
Definition for coordinates::get_dimension.
constexpr bool fixed
T is a values::value that is determinable at compile time.
Definition: fixed.hpp:60
Global definitions for OpenKalman.