Namespaces
Variants

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

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

Die Indexoperatoren ermöglichen das Lesen und Schreiben einzelner Elemente einer simd_mask .

1) Gibt einen Referenz-Proxy auf das i-te Element zurück. Dieser Proxy-Typ sollte nicht in einen Lvalue erfasst werden. Lvalues von simd_mask::reference können nur in value_type konvertiert werden. Rvalues von simd_mask::reference überladen Zuweisung und alle zusammengesetzten Zuweisungsoperatoren sowie swap .
2) Gibt einen Prvalue des i-ten Elements zurück. Im Gegensatz zu Containern, die Objekte vom Typ value_type enthalten, ist ein simd_mask kein Container individueller Objekte und kann daher keine Lvalue-Referenz zurückgeben.

Parameter

i - der Elementindex. Muss kleiner sein als size()

Beispiel

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

Mögliche Ausgabe:

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