最終更新日時(UTC):
が更新

履歴 編集

function
<mdspan>

std::layout_left::mapping::stride(C++23)

constexpr index_type stride(rank_type i) const noexcept;

概要

i番目次元のストライド幅を取得する。

テンプレートパラメータ制約

extents_type::rank() > 0

事前条件

i < extents_type::rank()

戻り値

多次元配列サイズの次元数R = extents_type::rank()としたとき

  • i > 0のとき、最左次元(0番目)からi - 1番目次元までの要素数を乗算した値を返す。
  • i == 0のとき、値1を返す。

例外

投げない

#include <cassert>
#include <mdspan>

int main()
{
  using Ext3x4 = std::extents<size_t, 3, 4>;
  using Mapping3x4 = std::layout_left::mapping<Ext3x4>;
  Mapping3x4 map1;
  assert(map1.stride(0) == 1);
  assert(map1.stride(1) == 3);

  using Ext3D = std::dextents<size_t, 3>;
  using Mapping3D = std::layout_left::mapping<Ext3D>;
  Mapping3D map2{Ext3D{4, 3, 2}};
  assert(map2.stride(0) == 1);
  assert(map2.stride(1) == 4);
  assert(map2.stride(2) == 12);
}

出力

バージョン

言語

  • C++23

処理系

参照