Questions marquées «move-semantics»

4
Pourquoi copions-nous puis déplaçons-nous?
J'ai vu du code quelque part dans lequel quelqu'un a décidé de copier un objet et de le déplacer par la suite vers une donnée membre d'une classe. Cela m'a laissé dans la confusion en ce sens que je pensais que tout l'intérêt de bouger était d'éviter de copier. Voici …

8
initializer_list et déplacer la sémantique
Suis-je autorisé à déplacer des éléments hors d'un std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Puisque std::intializer_list<T>nécessite une attention particulière du compilateur et n'a pas de sémantique de valeur comme les …

5
Puis-je lister un vecteur de type déplacement uniquement?
Si je passe le code suivant via mon instantané GCC 4.7, il essaie de copier le unique_ptrs dans le vecteur. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Évidemment, cela ne peut pas fonctionner car il std::unique_ptrn'est pas copiable: …



4
Voler des ressources des clés de std :: map autorisé?
En C ++, est-ce OK de voler des ressources d'une carte dont je n'ai plus besoin par la suite? Plus précisément, supposons que j'ai un std::mapavec des std::stringclés et que je veux en construire un vecteur en volant les ressources des mapclés s en utilisant std::move. Notez qu'un tel accès …
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.