Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | experimental‎ | simd‎ | simd mask
 
 
 
 
 
 
referenz operator[]( size_t i );
(1) (Parallelismus TS v2)
bool operator[]( size_t i ) const;
(2) (Parallelismus TS v2)

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

1) Gibt einen Referenz-Proxy für das i-te Element zurück. Dieser Proxy-Typ sollte nicht in einen L-Wert erfasst werden. L-Werte von simd_mask::reference können nur zu value_type konvertiert werden. R-Werte 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 eine simd_mask kein Container mit einzelnen Objekten und kann daher keine L-Wert-Referenz zurückgeben.

[bearbeiten] Parameter

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

[bearbeiten] 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