std::simd::basic_vec, std::simd::simd - cppreference.com
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