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)

Los operadores de subíndice permiten leer y escribir elementos individuales de un simd_mask .

1) Devuelve un proxy de referencia al i-ésimo elemento. Este tipo de proxy no debe capturarse en un lvalue. Los lvalues de simd_mask::reference solo pueden convertirse a value_type . Los rvalues de simd_mask::reference sobrecargan la asignación y todos los operadores de asignación compuesta, así como swap .
2) Devuelve un prvalue del i-ésimo elemento. A diferencia de los contenedores, que contienen objetos de tipo value_type , un simd_mask no es un contenedor de objetos individuales y por lo tanto no puede devolver una referencia lvalue.

Parámetros

i - el índice del elemento. Se requiere que sea menor que size()

Ejemplo

#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';
}

Salida posible:

1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1