Namespaces
Variants

std::experimental::simd_mask<T,Abi>:: operator[]

From cppreference.net
reference operator [ ] ( size_t i ) ;
(1) (parallelism TS v2)
bool operator [ ] ( size_t i ) const ;
(2) (parallelism TS v2)

添字演算子は、 simd_mask の単一要素の読み取りと書き込みを可能にします。

1) i番目の要素への参照プロキシを返します。このプロキシ型は左辺値としてキャプチャすべきではありません。 simd_mask::reference の左辺値は value_type へのみ変換可能です。 simd_mask::reference の右辺値は代入演算子、すべての複合代入演算子、および swap をオーバーロードします。
2) i番目の要素のprvalueを返します。型 value_type のオブジェクトを含むコンテナとは対照的に、 simd_mask は個々のオブジェクトのコンテナではないため、lvalue-referenceを返すことはできません。

パラメータ

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