std::experimental:: simd_cast, std::experimental:: static_simd_cast
|
Défini dans l'en-tête
<experimental/simd>
|
||
|
template
<
class
V,
class
T,
class
Abi
>
/*voir ci-dessous*/ simd_cast ( const simd < T, Abi > & v ) noexcept ; |
(1) | (parallelism TS v2) |
|
template
<
class
V,
class
T,
class
Abi
>
/*voir ci-dessous*/ static_simd_cast ( const simd < T, Abi > & v ) noexcept ; |
(2) | (parallelism TS v2) |
Convertit un objet simd en un autre objet simd. Si V est T, retourne simd < T, Abi > ; sinon, si V est un type scalaire, retourne simd < V, simd_abi :: fixed_size < simd < T, Abi > :: size ( ) >> . Sinon, V doit être un type simd, et la fonction retourne V.
- chaque valeur possible de l'élément d'entrée peut être représentée avec l'élément de sortie,
- soit is_simd_v < V > est faux, soit V :: size ( ) est égal à simd < T, Abi > :: size ( ) .
Table des matières |
Paramètres
| v | - | l'objet simd d'entrée |
Valeur de retour
Un objet simd dont le i-ème élément est initialisé à static_cast < To > ( v [ i ] ) , où To est le type d'élément de sortie comme spécifié.
Notes
La spécification TS manque simd_cast et static_simd_cast les surcharges pour simd_mask . L'implémentation libstdc++ fournit les surcharges manquantes dans l'espace de noms std :: experimental :: __proposed . Si vous utilisez déjà
namespace stdx = std::experimental;
raccourci, vous pourriez être intéressé à utiliser
namespace stdx { using namespace std::experimental; using namespace std::experimental::__proposed; }
à la place. Alternativement, libstdc++ implémente une __cvt ( ) fonction membre dans simd_mask , qui permet la conversion implicite du masque. Voir aussi : https://github.com/VcDevel/std-simd/issues/41
Exemple
|
Cette section est incomplète
Raison : aucun exemple |