A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../algorithm/../named_req/LayoutMapping.html below:

C++ named requirements: LayoutMapping (since C++23)

LayoutMapping controls the mapping of a multidimensional index to a one-dimensional offset to data handle in std::mdspan.

[edit] Requirements

A type M satisfies LayoutMapping if it models copyable and equality_comparable, and the following are true:

And, given the following types and values, the expressions shown in the table below are valid and have the indicated semantics:

[edit] Legend Type Definition M a layout mapping class Value Definition m a value of type (possibly const-qualified) M i, j packs of (possibly const-qualified) integers that are multidimensional indices in m.extents() r a (possibly const-qualified) rank index of typename M​::​extents_type d_r a pack of (possibly const-qualified) integers for which sizeof...(d_r) == M​::​extents_type​::​rank() is true, the element at rank index r is equal to 1, and all other elements are equal to ​0​ [edit] Member types Name Type Requirements M::extents_type Specialization of class template std::extents M::index_type typename M::extents_type::index_type M::rank_type typename M::extents_type::rank_type M::layout_type Layout mapping policy MP where typename MP::template mapping<E> is M
for some extents type E LayoutMappingPolicy for which M is mapping type of MP [edit] Member functions and operators Expression Return type Semantics m.extents() const typename M​::​extents_type& Returns constant reference to associated multidimensional index space m(i...) typename M​::​index_type m.required_span_size() typename M​::​index_type m.is_unique() bool Returns true only if for every i and j where (i != j || ...) is true, m(i...) != m(j...) is true. [note 1] m.is_exhaustive() bool Returns true only if for all k in the range [​0​m.required_span_size()), there exists an i such that m(i...) equals k. [note 2] m.is_strided() bool Returns true only if for every rank index r of m.extents(), there exists an integer s_r such that, for all i where (i + d_r) is a multidimensional index in m.extents(), m((i + d_r)...) - m(i...) equals s_r. [note 3] m.stride(r) typename M​::​index_type M::is_always_unique() bool M::is_always_exhaustive() bool M::is_always_strided() bool
  1. ↑ A mapping can return false even if the condition is met. For certain layouts, it is possibly not feasible to determine efficiently whether the layout is unique.
  2. ↑ Same as above, but in the case of exhaustive layouts.
  3. ↑ Same as above, but in the case of strided layouts.
  4. ↑ A mapping can return false even if the condition is met. For certain layout mappings, it is possibly not feasible to determine whether every instance is unique.
  5. ↑ Same as above, but in the case of exhaustive instances.
  6. ↑ Same as above, but in the case of strided instances.
[edit] Concept

For the constraints uses under std::layout_stride::mapping, the following exposition-only concept is defined.

Defines the minimal usability constraints of the LayoutMapping requirement. This concept checks that the predicate mapping trait functions above exist, are constant expressions, and have a return type of bool.

/*is-extents*/<E> is true if and only if E is a specialization of std::extents.

[edit] Standard library

The following standard library types satisfy LayoutMapping requirements:

a layout mapping of layout_left
(public member class template of std::layout_left)[edit] a layout mapping of layout_right
(public member class template of std::layout_right)[edit] a layout mapping of layout_stride
(public member class template of std::layout_stride)[edit] a layout mapping of layout_left_padded
(public member class template of std::layout_left_padded<PaddingValue>)[edit] a layout mapping of layout_right_padded
(public member class template of std::layout_right_padded<PaddingValue>)[edit] [edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4