Questions marquées «move-semantics»

12
Qu'est-ce que la sémantique des mouvements?
Je viens de finir d'écouter l' interview de podcast radio de Software Engineering avec Scott Meyers concernant C ++ 0x . La plupart des nouvelles fonctionnalités avaient du sens pour moi, et je suis vraiment enthousiasmé par C ++ 0x maintenant, à l'exception d'une. Je n'ai toujours pas de sémantique …

7
push_back vs emplace_back
Je suis un peu confus quant à la différence entre push_backet emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Comme il y a une push_backsurcharge prenant une référence rvalue, je ne vois pas vraiment à quoi sert le but emplace_back?


6
C ++ 11 rvalues ​​and move semantics confusion (instruction de retour)
J'essaie de comprendre les références rvalue et de déplacer la sémantique de C ++ 11. Quelle est la différence entre ces exemples et lequel d'entre eux ne fera pas de copie vectorielle? Premier exemple std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Deuxième exemple std::vector<int>&& …



6
Pourquoi devrais-je std :: déplacer un std :: shared_ptr?
J'ai parcouru le code source de Clang et j'ai trouvé cet extrait: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Pourquoi voudrais-je std::moveun std::shared_ptr? Y a-t-il un point de transfert de propriété sur une ressource partagée? Pourquoi ne ferais-je pas ça à la place? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { …




4
Quand rendre un type non déplaçable en C ++ 11?
J'ai été surpris que cela n'apparaisse pas dans mes résultats de recherche, je pensais que quelqu'un l'aurait déjà demandé, étant donné l'utilité de la sémantique de déplacement en C ++ 11: Quand dois-je (ou est-ce une bonne idée pour moi de) rendre une classe non déplaçable en C ++ 11? …

1
Impossible de sortir du contenu emprunté / Impossible de sortir derrière une référence partagée
Je ne comprends pas l'erreur cannot move out of borrowed content. Je l'ai reçu plusieurs fois et je l'ai toujours résolu, mais je n'ai jamais compris pourquoi. Par exemple: for line in self.xslg_file.iter() { self.buffer.clear(); for current_char in line.into_bytes().iter() { self.buffer.push(*current_char as char); } println!("{}", line); } produit l'erreur: error[E0507]: …


3
Quel est l'avantage d'utiliser des références de transfert dans des boucles for basées sur des plages?
const auto&suffirait si je veux effectuer des opérations en lecture seule. Cependant, je suis tombé sur for (auto&& e : v) // v is non-const quelques fois récemment. Cela me fait me demander: Est-il possible que, dans certains cas obscurs, l'utilisation de références de transfert présente un avantage en termes …


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.