Namespaces
Variants

std:: datapar:: basic_simd, std:: datapar:: simd

From cppreference.net
Défini dans l'en-tête <simd>
template < class T, class Abi = /*native-abi*/ < T > >
class basic_simd ;
(1) (depuis C++26)
template < class T, /*simd-size-type*/ N = /*simd-size-v*/ < T, /*native-abi*/ < T >> >
using simd = basic_simd < T, /*deduce-abi-t*/ < T, N >> ;
(2) (depuis C++26)
1) std::datapar::basic_simd La spécialisation est un type de traitement parallèle des données. L'étiquette ABI par défaut est déterminée par l'implémentation au moment de la compilation.
2) std::datapar::simd est un modèle d'alias qui permet aux utilisateurs de spécifier la largeur à une certaine taille. La largeur par défaut est déterminée par l'implémentation au moment de la compilation.

Chaque spécialisation de basic_simd est un type complet. La spécialisation est

  • activé , si T est un type vectorisable , et qu'il existe une valeur M dans l'intervalle [ 1 , 64 ] telle que Abi soit deduce-abi-t < T, M > ,
  • sinon désactivé , si T n'est pas un type vectorisable,
  • sinon, il est défini par l'implémentation si une telle spécialisation est activée.

Si basic_simd < T, Abi > est désactivé, la spécialisation a tous les constructeurs par défaut, destructeur, constructeur de copie et opérateur d'affectation par copie supprimés. De plus, seuls les types membres ci-dessous sont présents.

Si basic_simd < T, Abi > est activé, basic_simd < T, Abi > est TriviallyCopyable .

Table des matières

Paramètres du modèle

T - type d'élément ; un type vectorisable
Abi - type de tag utilisé pour déterminer la largeur et le stockage
N - la largeur du type parallèle de données ; le nombre d'éléments

Types membres

Type Définition
value_type T
mask_type datapar :: basic_simd_mask < sizeof ( T ) , Abi >
abi_type Abi

Constante membre

Nom Description
[static]
la largeur de basic_simd
(constante de membre public statique)

Fonctions membres

construit un objet basic_simd
(fonction membre publique)
accède à l'élément spécifié
(fonction membre publique)
incrémentation et décrémentation élément par élément
(fonction membre publique)
opérateurs unaires élément par élément
(fonction membre publique)

Fonctions non membres

opérateurs binaires élément par élément
(fonction)
opérateurs binaires composés élément par élément
(fonction)
opérateurs relationnels élément par élément
(fonction)
spécialise la sélection élément par élément pour simd_select
( fonction uniquement d'exposition* )

Guide de déduction

template < class R, class ... Ts >
basic_simd ( R && r, Ts... ) - > /* voir ci-dessous */ ;
(depuis C++26)

Le guide de déduction est présent uniquement si :

Le type déduit est équivalent à datapar :: simd < ranges:: range_value_t < R > , ranges:: size ( r ) > .

Notes

Il est recommandé que les implémentations prennent en charge les conversions explicites entre les spécialisations activées de basic_simd et les types appropriés définis par l'implémentation. Ces types appropriés sont des types vectoriels non standard qui sont disponibles dans l'implémentation.

Exemple

Voir aussi

type parallèle aux données avec le type d'élément bool
(modèle de classe)
alias pratique pour basic_simd_mask pouvant spécifier sa largeur
(modèle d'alias)
tableaux numériques, masques de tableau et tranches de tableau
(modèle de classe)