std::experimental::simd_mask<T,Abi>:: operator[]
From cppreference.net
<
cpp
|
experimental
|
simd
|
simd mask
C++
Experimental
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
Extensions for parallelism v2
| Parallel exceptions | ||||
| Additional execution policies | ||||
| Algorithms | ||||
| Task blocks | ||||
| Data-parallel vectors | ||||
SIMD library
std::experimental::simd_mask
| Member functions | ||||||||||||
|
||||||||||||
| Non-member functions | ||||||||||||
|
reference operator
[
]
(
size_t i
)
;
|
(1) | (parallelism TS v2) |
|
bool
operator
[
]
(
size_t i
)
const
;
|
(2) | (parallelism TS v2) |
Les opérateurs d'indice permettent de lire et d'écrire des éléments individuels d'un
simd_mask
.
1)
Renvoie un proxy de référence au i-ème élément. Ce type de proxy ne doit pas être capturé dans une lvalue. Les lvalues de
simd_mask::reference
ne peuvent se convertir qu'en
value_type
. Les rvalues de
simd_mask::reference
surchargent l'affectation et tous les opérateurs d'affectation composés ainsi que
swap
.
2)
Retourne une prvalue du i-ème élément. Contrairement aux conteneurs, qui contiennent des objets de type
value_type
, un
simd_mask
n'est pas un conteneur d'objets individuels et ne peut donc pas retourner une lvalue-reference.
Paramètres
| i | - |
l'indice de l'élément. Doit être inférieur à
size()
|
Exemple
Exécuter ce code
#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'; }
Sortie possible :
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1