16 #ifndef OPENKALMAN_IS_ONE_DIMENSIONAL_HPP 17 #define OPENKALMAN_IS_ONE_DIMENSIONAL_HPP 27 template<std::
size_t i = 0,
typename T>
28 constexpr
bool is_one_dimensional_impl(
const T& t)
30 if constexpr (i < index_count_v<T>)
34 values::operation(std::equal_to{}, get_index_extent<i>(t), std::integral_constant<std::size_t, 1>{}),
35 is_one_dimensional_impl<i + 1>(t));
39 return std::true_type {};
53 template<
typename T, std::enable_if_t<indexible<T>,
int> = 0>
57 if constexpr (index_count_v<T> == stdex::dynamic_extent)
64 return detail::is_one_dimensional_impl(t);
constexpr auto count_indices(const T &)
Get the number of indices necessary to address all the components of an indexible object...
Definition: count_indices.hpp:51
Definition of get_index_extent function.
Definition of count_indices.
constexpr auto get_index_extent(T &&t, I i=I{})
Get the runtime dimensions of index N of indexible T.
Definition: get_index_extent.hpp:36
The root namespace for OpenKalman.
Definition: basics.hpp:34
constexpr auto is_one_dimensional(const T &t)
Determine whether T is one_dimensional, meaning that every index has a dimension of 1...
Definition: is_one_dimensional.hpp:54
Definition for index_count.
constexpr auto operation(Operation &&op, Args &&...args)
A potentially constant-evaluated operation involving some number of values.
Definition: operation.hpp:98