• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <mdspan>

    std::layout_left::mapping::stride

    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

    処理系

    参照