std::simd::basic_vec, std::simd::simd
| 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) |
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.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
Tes un tipo vectorizable, y existe un valorMen el rango[1,64)tal queAbies deduce-abi-t<T, M>, - de lo contrario deshabilitada, si
Tno 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 arith2Funciones 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 cmpGuí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:
Rmodelacontiguous_rangeysized_range, yranges::size(r)es una expresión constante.
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
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
(C++26) |
Tipo de paralelismo de datos con el tipo de elemento bool. (plantilla de clase) |
(C++26) |
Plantilla de alias de conveniencia para basic_mask que permite especificar su anchura. (plantilla de alias) |
| arrays numéricos, máscaras de arrays y secciones de array. (plantilla de clase) |