• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function template
    <mdspan>

    std::layout_left::mapping::operator()

    template<class... Indices>
    constexpr index_type operator()(Indices... i) const noexcept;
    

    概要

    多次元インデクス値i...に対応する要素位置を求める。

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

    事前条件

    多次元インデクス値extents_type::index-cast(i)は、多次元配列サイズextents_における有効なインデクスであること。

    戻り値

    説明用のパラメータパックPにおいて、is_same_v<index_sequence_for<Indices...>, index_sequence<P...>>trueとなるとき、以下と等価。

    return ((static_cast<index_type>(Indices...) * stride(P)) + ... + 0);
    

    例外

    投げない

    #include <cassert>
    #include <mdspan>
    
    int main()
    {
      using Ext3x4 = std::extents<size_t, 3, 4>;
      using Mapping3x4 = std::layout_left::mapping<Ext3x4>;
      Mapping3x4 map;
      assert(map(0,0) == 0);
      assert(map(0,1) == 3);
      assert(map(1,0) == 1);
      assert(map(2,3) == 11);
    }
    

    出力

    バージョン

    言語

    • C++23

    処理系

    参照