Namespaces
Variants
Actions

std::layout_stride::mapping<Extents>::mapping-traits

From cppreference.com
< cpp‎ | container‎ | mdspan‎ | layout stride‎ | mapping
 
C++
 
Containers library
 
std::mdspan
 
std::layout_stride::mapping
Member functions
Observers
mapping::is_uniquemapping::is_exhaustivemapping::is_stridedmapping::is_always_uniquemapping::is_always_exhaustivemapping::is_always_strided
Non-member functions
 
static constexpr bool is_unique() noexcept;
(1) (since C++23)
constexpr bool is_exhaustive() const noexcept;
(2) (since C++23)
static constexpr bool is_strided() noexcept;
(3) (since C++23)
static constexpr bool is_always_unique() noexcept;
(4) (since C++23)
static constexpr bool is_always_exhaustive() noexcept;
(5) (since C++23)
static constexpr bool is_always_strided() noexcept;
(6) (since C++23)

Every instance of every specialization of mapping is unique and strided.

The mapping is exhaustive if one of the following conditions is true:

  • rank_ is 0, or
  • there exists a permutation p of the integers in the range [0rank_) such that:
  • stride(p[0]) equals 1 and
  • stride(p[i]) equals stride(p[i - 1]) * extents().extent(p[i - 1])
for all i in [1rank_), where p[i] is the ith element of p.

(rank_ is an exposition-only static member constant defined in std::layout_stride::mapping.)

See LayoutMapping for the semantics of these predicate mapping traits.

Contents

[edit] Parameters

(none)

[edit] Return value

1,3-4,6) true
2) true if the mapping is exhaustive (see above)
5) false

[edit] Example

[edit] See also

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant