Partager via


copy_async, fonction

Copie un objet C++ AMP et renvoie un objet completion_future sur lequel on peut se mettre en attente. Il est impossible de copier des données quand du code s'exécute sur un accélérateur. La forme générale de cette fonction est copy(src, dest).

template <
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array<_Value_type, _Rank>& _Src,
   array<_Value_type, _Rank>& _Dest
);

template <
   typename InputIterator,
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   InputIterator _SrcFirst,
   InputIterator _SrcLast,
   array<_Value_type, _Rank> &_Dest
);

template <
   typename InputIterator,
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   InputIterator _SrcFirst,
   array<_Value_type, _Rank> &_Dest
);

template <
   typename OutputIterator,
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array<_Value_type, _Rank> &_Src,
   OutputIterator _DestIter
);

template <
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array<_Value_type, _Rank>& _Src,
   array_view<_Value_type, _Rank>& _Dest
);

template <
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array_view<const _Value_type, _Rank>& _Src,
   array<_Value_type, _Rank>& _Dest
);

template <
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array_view<_Value_type, _Rank>& _Src,
   array<_Value_type, _Rank>& _Dest
);

template <
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array_view<const _Value_type, _Rank>& _Src,
   array_view<_Value_type, _Rank>& _Dest
);

template <
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array_view<_Value_type, _Rank>& _Src,
   array_view<_Value_type, _Rank>& _Dest
);

template <
   typename InputIterator,
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   InputIterator _SrcFirst,
   InputIterator _SrcLast,
   array_view<_Value_type, _Rank> &_Dest
);

template <
   typename InputIterator,
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   InputIterator_SrcFirst,
   array_view<_Value_type, _Rank> &_Dest
);

template <
   typename OutputIterator,
   typename _Value_type,
   int _Rank
>
concurrency::completion_future copy_async(
   const array_view<_Value_type, _Rank> &_Src,
   OutputIterator _DestIter
);

Paramètres

  • _Dest
    Objet avec lequel effectuer la copie.

  • _DestIter
    Un itérateur en sortie pour la position de départ à destination.

  • InputIterator
    Type de l'itérateur d'entrée.

  • OutputIterator
    Type de l'itérateur de sortie.

  • _Rank
    Rang de l'objet à copier ou de l'objet dans lequel copier.

  • _Src
    L'objet à copier.

  • _SrcFirst
    Un itérateur de départ dans le conteneur source.

  • _SrcLast
    Un itérateur de fin dans le conteneur source.

  • _Value_type
    Type de données des éléments copiés.

Valeur de retour

Un future<void> sur lequel on peut mettre en attente.

Remarques

L'opération de copie effectue toujours une copie par valeur.

Si les extents des objets source et destination ne correspondent pas, une runtime_exception est levée.

Vous pouvez effectuer la copie dans les objets array et array_view à partir des sources suivantes :

  • Un array ou array_view qui a le même classement et type d'élément que la destination array ou array_view.

  • Un conteneur standard dont le type d'élément est identique à la destination array ou array_view. Les conteneurs qui exposent size() et les membres de data() sont très performants.

Configuration requise

En-tête : amp.h

Espace de noms d'accès : Concurrency

Voir aussi

Référence

Concurrency, espace de noms (C++ AMP)