16 #ifndef OPENKALMAN_LAYOUT_MAPPING_POLICY_HPP 17 #define OPENKALMAN_LAYOUT_MAPPING_POLICY_HPP 28 template<
typename IndexType, std::size_t...Extents>
29 struct is_extents<stdex::extents<IndexType, Extents...>> : std::true_type {};
40 constexpr
bool layout_mapping =
42 stdex::copyable<M> and
43 stdex::equality_comparable<M> and
44 std::is_nothrow_move_constructible_v<M> and
45 std::is_nothrow_move_assignable_v<M> and
46 std::is_nothrow_swappable_v<M> and
48 stdex::same_as<typename M::index_type, typename M::extents_type::index_type> and
49 stdex::same_as<typename M::rank_type, typename M::extents_type::rank_type>;
54 template<
typename MP,
typename M,
typename E>
56 concept layout_mapping_policy_impl_impl =
58 constexpr
bool layout_mapping_policy_impl_impl =
61 stdex::same_as<MP, typename M::layout_type> and
62 stdex::same_as<E, typename M::extents_type>;
65 template<
typename MP,
typename E>
67 concept layout_mapping_policy_impl =
69 constexpr
bool layout_mapping_policy_impl =
71 layout_mapping_policy_impl_impl<MP, typename MP::template mapping<E>, E>;
83 constexpr
bool layout_mapping_policy =
85 detail::layout_mapping_policy_impl<MP, stdex::extents<std::size_t>>;
Definition: layout_mapping_policy.hpp:26
Basic definitions for OpenKalman as a whole.
constexpr bool layout_mapping_policy
MP is a LayoutMappingPolicy.
Definition: layout_mapping_policy.hpp:83
Definition: basics.hpp:48
constexpr bool layout_mapping
MP is a LayoutMapping.
Definition: layout_mapping_policy.hpp:40