16 #ifndef OPENKALMAN_COLLECTIONS_COMMON_DESCRIPTOR_TYPE_HPP 17 #define OPENKALMAN_COLLECTIONS_COMMON_DESCRIPTOR_TYPE_HPP 38 template<
typename T,
typename =
void,
typename =
void>
45 template<descriptor T>
53 stdex::type_identity<Dimensions<1>>,
54 stdex::type_identity<std::decay_t<T>>
60 template<
typename...Ts>
66 template<
typename T0,
typename T1,
typename...Ts>
68 : std::conditional_t<dimension_of_v<T0> == 0 and dimension_of_v<T1> == 0, common_descriptor_type_iter<Ts...>,
69 std::conditional_t<dimension_of_v<T0> == 0, common_descriptor_type_iter<T1, Ts...>,
70 std::conditional_t<dimension_of_v<T1> == 0, common_descriptor_type_iter<T0, Ts...>,
71 common_descriptor_type_iter<
72 typename std::conditional_t<stdex::common_reference_with<T0, T1>, stdex::common_reference<T0, T1>,
73 stdex::type_identity<Any<>>
81 template<
typename T, std::size_t...i>
89 template<
typename T,
typename =
void>
95 template<collections::uniformly_gettable T> requires (not stdex::ranges::random_access_range<T>)
100 std::enable_if_t<collections::uniformly_gettable<T> and not stdex::ranges::random_access_range<T>>>
108 #ifdef __cpp_concepts 109 template<descriptor_collection T>
115 : std::conditional_t<
116 euclidean_pattern<T>,
117 stdex::type_identity<Dimensions<1>>,
118 detail::common_descriptor_type_impl<T>
Definition for coordinates::euclidean_pattern.
typename common_descriptor_type< T >::type common_descriptor_type_t
Helper template for common_descriptor_type.
Definition: common_descriptor_type.hpp:126
The common type within a pattern, if it exists.
Definition: common_descriptor_type.hpp:40
Definition of the Dimensions class.
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45
Definition for coordinates::descriptor.
The namespace for features relating to coordinates::pattern object.
Definition: compares_with.hpp:25
Inclusion file for collections.
Definition: common_descriptor_type.hpp:79
Definition: common_descriptor_type.hpp:61
Definition: common_descriptor_type.hpp:91
Definition: language-features.hpp:243
The common type within a collection, if it exists.
Definition: common_collection_type.hpp:34
Definition for coordinates::descriptor_collection.
Definition for coordinates::dimension_of.