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

履歴 編集

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

処理系

関連項目

参照