- 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は、データ並列型V(basic_vecまたはbasic_mask)の要素型を維持したまま、要素数(「width」)をNに変更した型を取得する型特性である。
メンバtypeは、Vがデータ並列型であり、要素数Nを表現できるデータ並列型が存在する場合にのみ存在する。存在するときtypeは、Vと同じ要素型で要素数Nのデータ並列型を表す。
permuteやchunk・catなど、要素数が変化する操作の戻り値型に用いられる。
#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
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]
- P1928R15 std::simd — merge data-parallel types from the Parallelism TS 2
- C++26で
std::simdライブラリが追加された
- C++26で