Espacios de nombres
Variantes

std::simd::basic_vec, std::simd::simd

De cppreference.com
 
 
 
 
 
Definido en el archivo de encabezado <simd>
template< class T, class Abi = /*native-abi*/<T> > class basic_vec;
(1) (desde C++26)
template< class T, /*simd-size-type*/ N = /*simd-size-v*/<T, /*native-abi*/<T>> > using simd = basic_vec<T, /*deduce-abi-t*/<T, N>>;
(2) (desde C++26)
1) La especialización std::simd::basic_vec es un tipo de datos paralelo. La etiqueta ABI por defecto se determina en tiempo de compilación por la implementación.
2) std::simd::vec es una plantilla de alias que permite a los usuarios especificar el ancho a un tamaño determinado. El ancho por defecto se determina en tiempo de compilación por la implementación.

Cada especialización de basic_vec es un tipo completo. La especialización es:

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

Si basic_vec<T, Abi> está deshabilitado, la especialización tiene todos los constructores por defecto, destructores, constructores de copia y asignaciones de copia eliminados. Además, solo están presentes los tipos de miembros a continuación.

Si basic_vec<T, Abi> está habilitado, basic_vec<T, Abi> es TrivialmenteCopiable.

Parámetros de plantilla

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

Tipos miembro

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

Constante miembro

Nombre Descripción
[estático]
El ancho de basic_vec.
(constante miembro pública estática)

Funciones miembro

Plantilla:cpp/numeric/simd/basic vec/dsc constructorPlantilla:cpp/numeric/simd/basic vec/dsc operator atPlantilla:cpp/numeric/simd/basic vec/dsc operator mem arithPlantilla:cpp/numeric/simd/basic vec/dsc operator mem arith2

Funciones no miembro

Plantilla:cpp/numeric/simd/basic vec/dsc operator arithPlantilla:cpp/numeric/simd/basic vec/dsc operator compoundPlantilla:cpp/numeric/simd/basic vec/dsc operator cmp
Plantilla:cpp/numeric/simd/basic vec/dsc simd select

Guía de deducción

template< class R, class... Ts > basic_vec( R&& r, Ts... ) -> /* see below */;
(desde C++26)

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

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

Notas

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

Ejemplo

Véase también

Tipo de paralelismo de datos con el tipo de elemento bool.
(plantilla de clase) [editar]
Plantilla de alias de conveniencia para basic_mask que permite especificar su anchura.
(plantilla de alias) [editar]
arrays numéricos, máscaras de arrays y secciones de array.
(plantilla de clase) [editar]