Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 1.9 KB

File metadata and controls

70 lines (51 loc) · 1.9 KB

resize

  • simd[meta header]
  • std::simd[meta namespace]
  • class template[meta id-type]
  • cpp26[meta cpp]
namespace std::simd {
  template<simd-size-type N, class V>
  struct resize { using type = /*see below*/; };

  template<simd-size-type N, class V>
  using resize_t = resize<N, V>::type;
}
  • simd-size-type[link /reference/simd/simd-size-type.md]

概要

resizeは、データ並列型Vbasic_vecまたはbasic_mask)の要素型を維持したまま、要素数(「width」)をNに変更した型を取得する型特性である。

メンバtypeは、Vがデータ並列型であり、要素数Nを表現できるデータ並列型が存在する場合にのみ存在する。存在するときtypeは、Vと同じ要素型で要素数Nのデータ並列型を表す。

permutechunkcatなど、要素数が変化する操作の戻り値型に用いられる。

#include <simd>
#include <print>
#include <type_traits>

namespace simd = std::simd;

int main()
{
  using V4 = simd::vec<int, 4>;

  // 要素型intを維持したまま要素数を8に変更
  using V8 = simd::resize_t<8, V4>;

  std::println("{}", std::is_same_v<V8, simd::vec<int, 8>>);
}
  • simd::vec[link basic_vec.md]
  • simd::resize_t[color ff0000]

出力

true

バージョン

言語

  • C++26

処理系

関連項目

参照