最終更新日時: 2025年07月09日 00時33分39秒 (JST)
Akira Takahashi が更新

履歴 編集

class
<mdspan>

# std::full_extent_t(C++26)

    namespace std {
      struct full_extent_t { explicit full_extent_t() = default; };

      inline constexpr full_extent_t full_extent{};
    }

## 概要

`full_extent_t`は、多次元配列の特定次元に対して全要素取り出しを指示するためのタグ型である。

`full_extent_t`型の定数`full_extent`が提供される。

## 例

    #include <mdspan>
    #include <print>

    int main()
    {
      int arr[] = {1, 2, 3, 4, 5, 6};

      // 2x3要素の2次元配列ビュー
      using Ext2x3 = std::extents<size_t, 2, 3>;
      std::mdspan<int, Ext2x3> mat{arr};
      // i/j ->
      // |  1 2 3
      // V  4 5 6

      // i=1行を3要素の1次元ビューとして抽出
      auto row1 = std::submdspan(mat, 1, std::full_extent);
      std::println("row[1]:");
      for (size_t i = 0; i < row1.extent(0); i++) {
        std::print(" {}", row1[i]);
      }

      // j=1列を2要素の1次元ビューとして抽出
      auto col1 = std::submdspan(mat, std::full_extent, 1);
      std::println("\ncol[1]:");
      for (size_t i = 0; i < col1.extent(0); i++) {
        std::print(" {}", col1[i]);
      }
    }

### 出力

    row[1]:
     4 5 6
    col[1]:
     2 5

## バージョン

### 言語

- C++26

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??

## 関連項目

- `submdspan`

## 参照

- P2630R4 Submdspan