Skip to content

Latest commit

 

History

History
38 lines (31 loc) · 1.15 KB

File metadata and controls

38 lines (31 loc) · 1.15 KB

layout-mapping-alike

  • [meta exposition-only]
  • mdspan[meta header]
  • concept[meta id-type]
  • std[meta namespace]
  • layout_stride::mapping[meta class]
  • cpp23[meta cpp]
template<class T>
  constexpr bool is-extents = false;                              // exposition only
template<class IndexType, size_t... Args>
  constexpr bool is-extents<extents<IndexType, Args...>> = true;  // exposition only

template<class M>
concept layout-mapping-alike = requires {  // exposition only
  requires is-extents<typename M::extents_type>;
  { M::is_always_strided() } -> same_as<bool>;
  { M::is_always_exhaustive() } -> same_as<bool>;
  { M::is_always_unique() } -> same_as<bool>;
  bool_constant<M::is_always_strided()>::value;
  bool_constant<M::is_always_exhaustive()>::value;
  bool_constant<M::is_always_unique()>::value;
};
  • bool_constant[link /reference/type_traits/bool_constant.md]

概要

layout-mapping-alikeは、layout_stride::mapping動作仕様定義で用いられる説明専用コンセプトである。

バージョン

言語

  • C++23

参照