16 #ifndef OPENKALMAN_IS_VECTOR_HPP 17 #define OPENKALMAN_IS_VECTOR_HPP 24 template<std::size_t N, std::size_t...Is,
typename T>
25 constexpr
bool get_is_vector_impl(std::index_sequence<Is...>,
const T& t)
27 return (... and (N == Is or get_index_dimension_of<Is>(t) == 1));
40 template<std::
size_t N = 0,
interface::count_indices_defined_for T>
42 template<std::
size_t N = 0,
typename T, std::enable_if_t<
interface::count_indices_defined_for<T>,
int> = 0>
49 return detail::get_is_vector_impl<N>(std::make_index_sequence<count>{}, t);
61 #endif //OPENKALMAN_IS_VECTOR_HPP constexpr auto count_indices(const T &t)
Get the number of indices available to address the components of an indexible object.
Definition: count_indices.hpp:33
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
constexpr bool is_vector(const T &t)
Return true if T is a vector at runtime.
Definition: is_vector.hpp:44
constexpr bool fixed
T is a values::value that is determinable at compile time.
Definition: fixed.hpp:60
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