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 patterns::euclidean_pattern.
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: common_descriptor_type.hpp:79
The namespace for features relating to patterns::pattern object.
Definition: collection_compares_with.hpp:24
Definition for patterns::descriptor.
Definition: common_descriptor_type.hpp:61
Inclusion file for collections.
typename common_descriptor_type< T >::type common_descriptor_type_t
Helper template for common_descriptor_type.
Definition: common_descriptor_type.hpp:126
Definition: language-features.hpp:243
The common type within a collection, if it exists.
Definition: common_collection_type.hpp:34
The common type within a pattern, if it exists.
Definition: common_descriptor_type.hpp:40
Definition for patterns::descriptor_collection.
Definition: common_descriptor_type.hpp:91
Definition for patterns::dimension_of.