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-й элемент. Этот тип прокси не должен захватываться как lvalue. Lvalue типа simd_mask::reference могут преобразовываться только в value_type . Rvalue типа simd_mask::reference перегружают оператор присваивания и все составные операторы присваивания, а также swap .
2) Возвращает prvalue i-го элемента. В отличие от контейнеров, которые содержат объекты типа 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