std::experimental::split, split_by
From cppreference.com
< cpp | experimental | simd
| ヘッダー <experimental/simd> で定義 |
||
| template< std::size_t... Sizes, class T, class Abi > std::tuple<simd<T, simd_abi::deduce_t<T, Sizes>>...> |
(1) | (parallelism TS v2) |
| template< std::size_t... Sizes, class T, class Abi > std::tuple<simd_mask<T, simd_abi::deduce_t<T, Sizes>>...> |
(2) | (parallelism TS v2) |
| template< class V, class Abi > std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()> |
(3) | (parallelism TS v2) |
| template< class V, class Abi > std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()> |
(4) | (parallelism TS v2) |
| template< size_t N, class T, class A > array<resize_simd<simd_size_v<T, A> / N, simd<T, A>>, N> |
(5) | (parallelism TS v2) |
| template< size_t N, class T, class A > array<resize_simd<simd_size_v<T, A> / N, simd_mask<T, A>>, N> |
(6) | (parallelism TS v2) |
入力されたsimdまたはsimd_maskオブジェクトを、複数のsimdまたはsimd_maskオブジェクトに分割します。
1,2) 入力オブジェクトを、異なる型(例:異なるサイズの型)のオブジェクトに分割します。これらの関数は、Sizes... の合計が v.size() になる場合を除き、オーバーロード解決に参加しません。
3,4) 入力オブジェクトをオブジェクトの配列に分割します。これらの関数は、
- 配列要素の型は、
vがsimdまたはsimd_maskの場合、それぞれsimdまたはsimd_maskである必要があります。 - simd_size_v<typename V::value_type, Abi> が V::size() の整数倍である場合に、オーバーロード解決に参加しません。
5,6) 入力オブジェクトをオブジェクトの配列に分割します。これらの関数は、simd_size_v<T, A> が
N の整数倍である場合を除き、オーバーロード解決に参加しません。[編集] パラメータ
| v | - | 入力simdまたはsimd_maskオブジェクト |
[編集] 戻り値
1,2) 分割された
simdまたはsimd_maskオブジェクトを含むタプル。3-6) 分割された
simdまたはsimd_maskオブジェクトを含む配列。[編集] 例
| このセクションは未完成です 理由: 例がありません |