16 #ifndef OPENKALMAN_COMPATIBLE_SHAPE_WITH_HPP 17 #define OPENKALMAN_COMPATIBLE_SHAPE_WITH_HPP 19 #include "patterns/patterns.hpp" 26 #ifndef __cpp_concepts 27 template<
typename P,
typename T, applicability a,
typename =
void>
30 template<
typename P,
typename T, applicability a>
32 patterns::collection_compares_with<
33 decltype(patterns::to_extents(std::declval<P>())),
34 decltype(get_pattern_collection(get_mdspan(std::declval<std::add_lvalue_reference_t<T>>()))),
47 template<
typename P,
typename T, applicability a = applicability::permitted>
decltype(auto) constexpr get_pattern_collection(T &&t)
Get the patterns::pattern_collection associated with indexible object T.
Definition: get_pattern_collection.hpp:36
constexpr bool collection_compares_with
Compares two pattern_collection objects.
Definition: collection_compares_with.hpp:132
Definition: pattern_collection_for.hpp:28
The root namespace for OpenKalman.
Definition: basics.hpp:34
Definition for compares_with_pattern_collection.
constexpr bool pattern_collection_for
pattern collection P has a shape that is attachable to indexible T.
Definition: pattern_collection_for.hpp:55
constexpr auto to_extents(P &&p)
Convert a pattern_collection to std::extents.
Definition: to_extents.hpp:78
decltype(auto) constexpr get_mdspan(T &&t)
Get the mdspan associated with indexible object T.
Definition: get_mdspan.hpp:35