std::experimental:: simd_cast, std::experimental:: static_simd_cast
|
Definido en el encabezado
<experimental/simd>
|
||
|
template
<
class
V,
class
T,
class
Abi
>
/*ver más abajo*/ simd_cast ( const simd < T, Abi > & v ) noexcept ; |
(1) | (parallelism TS v2) |
|
template
<
class
V,
class
T,
class
Abi
>
/*ver más abajo*/ static_simd_cast ( const simd < T, Abi > & v ) noexcept ; |
(2) | (parallelism TS v2) |
Convierte un objeto simd a otro objeto simd. Si V es T, retorna simd < T, Abi > ; de lo contrario, si V es un tipo escalar, retorna simd < V, simd_abi :: fixed_size < simd < T, Abi > :: size ( ) >> . De lo contrario, V debe ser un tipo simd, y la función retorna V.
- cada valor posible del elemento de entrada pueda ser representado con el elemento de salida,
- ya sea que is_simd_v < V > sea falso, o que V :: size ( ) sea simd < T, Abi > :: size ( ) .
Contenidos |
Parámetros
| v | - | el objeto simd de entrada |
Valor de retorno
Un objeto simd con el i-ésimo elemento inicializado a static_cast < To > ( v [ i ] ) , donde To es el tipo de elemento de salida como se especifica.
Notas
La especificación TS carece de simd_cast y static_simd_cast sobrecargas para simd_mask . La implementación de libstdc++ proporciona las sobrecargas faltantes en el espacio de nombres std :: experimental :: __proposed . Si ya utiliza
namespace stdx = std::experimental;
atajo, podría interesarte usar
namespace stdx { using namespace std::experimental; using namespace std::experimental::__proposed; }
en su lugar. Alternativamente, libstdc++ implementa una __cvt ( ) función miembro en simd_mask , que permite la conversión implícita de la máscara. Véase también: https://github.com/VcDevel/std-simd/issues/41
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |