Namespaces
Variants

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

From cppreference.net
Definido en el encabezado <simd>
template < class T, class Abi = /*native-abi*/ < T > >
class basic_simd ;
(1) (desde 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) (desde C++26)
1) std::datapar::basic_simd la especialización es un tipo de procesamiento de datos en paralelo. La etiqueta ABI predeterminada es determinada por la implementación en tiempo de compilación.
2) std::datapar::simd es una plantilla de alias que permite a los usuarios especificar el ancho a un tamaño determinado. El ancho predeterminado es determinado por la implementación en tiempo de compilación.

Cada especialización de basic_simd es un tipo completo. La especialización es

  • habilitado , si T es un tipo vectorizable , y existe un valor M en el rango [ 1 , 64 ] tal que Abi es deduce-abi-t < T, M > ,
  • de lo contrario deshabilitado , si T no es un tipo vectorizable,
  • de lo contrario, está definido por la implementación si dicha especialización está habilitada.

Si basic_simd < T, Abi > está deshabilitado, la especialización tiene todos los constructores por defecto, destructor, constructor de copia y asignación de copia eliminados. Además, solo están presentes los tipos de miembro siguientes.

Si basic_simd < T, Abi > está habilitado, basic_simd < T, Abi > es TriviallyCopyable .

Contenidos

Parámetros de plantilla

T - tipo de elemento; un tipo vectorizable
Abi - tipo de etiqueta utilizado para determinar el ancho y almacenamiento
N - el ancho del tipo de datos paralelos; el número de elementos

Tipos de miembros

Tipo Definición
value_type T
mask_type datapar :: basic_simd_mask < sizeof ( T ) , Abi >
abi_type Abi

Constante de miembro

Nombre Descripción
[static]
el ancho de basic_simd
(constante de miembro público estático)

Funciones miembro

construye un objeto basic_simd
(función miembro pública)
accede al elemento especificado
(función miembro pública)
incremento y decremento por elementos
(función miembro pública)
operadores unarios por elementos
(función miembro pública)

Funciones no miembro

operadores binarios elemento a elemento
(función)
operadores binarios compuestos elemento a elemento
(función)
operadores relacionales elemento a elemento
(función)
especializa la selección elemento por elemento para simd_select
( función solo para exposición* )

Guía de deducción

template < class R, class ... Ts >
basic_simd ( R && r, Ts... ) - > /* ver más abajo */ ;
(desde C++26)

La guía de deducción está presente solo si:

El tipo deducido es equivalente a datapar :: simd < ranges:: range_value_t < R > , ranges:: size ( r ) > .

Notas

Se recomienda que las implementaciones admitan conversiones explícitas entre especializaciones habilitadas de basic_simd y tipos apropiados definidos por la implementación. Estos tipos apropiados son tipos vectoriales no estándar que están disponibles en la implementación.

Ejemplo

Véase también

tipo de datos paralelos con el tipo de elemento bool
(plantilla de clase)
plantilla de alias conveniente para basic_simd_mask que puede especificar su ancho
(plantilla de alias)
arreglos numéricos, máscaras de arreglo y segmentos de arreglo
(plantilla de clase)