std::experimental::simd_mask<T,Abi>::operator[]
From cppreference.com
< cpp | experimental | simd | simd mask
| reference operator[]( size_t i ); |
(1) | (parallelism TS v2) |
| bool operator[]( size_t i ) const; |
(2) | (parallelism TS v2) |
添え字演算子により、simd_mask の単一の要素の読み書きが可能です。
1) i番目の要素への参照プロキシを返します。このプロキシ型はlvalueにキャプチャすべきではありません。
simd_mask::reference のlvalueは value_type にしか変換できません。simd_mask::reference のrvalueは代入演算子、複合代入演算子、およびswap をオーバーロードします。2) i番目の要素のprvalueを返します。オブジェクトを格納する
value_type を含むコンテナとは異なり、simd_mask は個々のオブジェクトのコンテナではないため、lvalue参照を返すことはできません。[編集] パラメータ
| i | - | 要素のインデックス。size() より小さい必要があります。 |
[編集] 例
このコードを実行
#include <cstddef> #include <experimental/simd> #include <iostream> namespace stdx = std::experimental; int main() { stdx::native_simd_mask<int> a{true}; a[1] = 0; for (std::size_t i = 0; i != a.size(); ++i) std::cout << a[i] << ' '; std::cout << '\n'; }
実行結果の例
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1