16 #ifndef OPENKALMAN_PATTERNS_COLLECTION_PATTERNS_COMPARE_WITH_DIMENSION_HPP 17 #define OPENKALMAN_PATTERNS_COLLECTION_PATTERNS_COMPARE_WITH_DIMENSION_HPP 28 #ifndef __cpp_concepts 29 template<
typename T,
typename =
void>
37 template<
typename T, std::
size_t dim, auto comp, std::
size_t N, applicability b,
typename = std::make_index_sequence<N>>
40 template<
typename T, std::size_t dim,
auto comp, std::size_t N,
applicability b, std::size_t...i>
42 : std::bool_constant<(... and values::size_compares_with<
43 dimension_of<pattern_collection_element_t<i, T>>,
44 std::integral_constant<std::size_t, dim>,
48 template<
typename T, std::
size_t dim, auto comp, auto N, applicability b>
50 collection_patterns_compare_with_dimension_impl()
71 std::integral_constant<std::size_t, dim>, comp, b>;
91 auto comp = &stdex::is_eq,
98 template<typename T, std::size_t dim, auto comp = &stdex::is_eq, std::size_t N = values::unbounded_size, applicability b = applicability::guaranteed>
99 constexpr
inline bool collection_patterns_compare_with_dimension =
102 pattern_collection<T> and
103 detail::collection_patterns_compare_with_dimension_impl<T, dim, comp, N, b>();
Definition for pattern_collection.
The size of a patterns::pattern.
Definition: dimension_of.hpp:36
The concept, trait, or restraint represents a compile-time guarantee.
applicability
The applicability of a concept, trait, or restraint.
Definition: constants.hpp:35
The concept, trait, or restraint is permitted, but whether it applies is not necessarily known at com...
Definition: collection_patterns_compare_with_dimension.hpp:38
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45
Definition: collection_patterns_compare_with_dimension.hpp:30
The namespace for features relating to patterns::pattern object.
Definition: collection_compares_with.hpp:24
constexpr bool collection_patterns_compare_with_dimension
Specifies that each element of a pattern_collection T has dimension dim for the first N indices...
Definition: collection_patterns_compare_with_dimension.hpp:99
Inclusion file for collections.
A type reflecting an unbound size.
Definition: size.hpp:27
constexpr bool size_compares_with
T and U are sizes that compare in a particular way based on parameter comp.
Definition: size_compares_with.hpp:98
constexpr bool integral
T is an integral value.
Definition: integral.hpp:47
constexpr bool fixed_value_compares_with
T has a fixed value that compares with N in a particular way based on parameter comp.
Definition: fixed_value_compares_with.hpp:74
constexpr unbounded_size_t unbounded_size
An instance of unbounded_size_t;.
Definition: size.hpp:60
Definition for collections::pattern_collection_element.
The common type within a collection, if it exists.
Definition: common_collection_type.hpp:34
Definition for patterns::dimension_of.