Questions sur return-value-optimization

4
réponses

Qu'est-ce que l'optimisation de la valeur de copie et de retour?

Qu'est-ce que copy elision? Qu'est-ce que l'optimisation de la valeur de retour (nommée)? Que font-ils impliquent? ... uction . pour un aperçu technique, voir la référence standard . Voir cas ici .
demandé sur 2012-10-18 15:03:03
4
réponses

c++11 valeur de Retour de l'optimisation ou de la déplacer? [dupliquer]

cette question a déjà une réponse ici: C++11 rvalues et la sémantique de déplacem ... ffer( size ); read( begin( buffer ), end( buffer ) ); return move( buffer ); } Que dois-je utiliser?
demandé sur 2013-07-04 19:19:09
7
réponses

En c++, est-ce encore une mauvaise pratique de renvoyer un vecteur d'une fonction?

version courte: il est courant de rendre de grands objets-tels que des vecteurs/tableaux-dans de nombreux langag ... rme était une odeur de code majeure dans la programmation C++ pendant une longue période. Plus maintenant, j'espère?
demandé sur 2010-06-28 21:52:43
2
réponses

Optimisation de la valeur de retour et sélection de la copie en C

certaines personnes ne sont pas au courant qu'il est possible de passer et de retourner des structures en valeur da ... e de l'assemblage pour voir ce que le compilateur fait, mais je pense que c'est une question intéressante néanmoins.
demandé sur 2015-05-04 18:41:05
1
réponses

Désactivation de l'optimisation de la valeur de retour de g++

de quel(s) drapeau (s) Ai-je besoin sur la ligne de commande pour désactiver l'optimisation de la valeur de retour automatiquement activée par le compilateur g++?
demandé sur 2012-01-06 16:58:50
6
réponses

Pourquoi les paramètres de by-value sont-ils exclus de L'OCNV?

Imaginez: S f(S a) { return a; } pourquoi n'est-il pas permis d'alias a et la fente de valeur de reto ... ui serait encore obligatoire en présence d'effets secondaires de déplacer/constructeur de copie). pourquoi?
demandé sur 2011-05-15 19:22:11
3
réponses

Bonne façon (sémantique de déplacement) de retourner un std:: vecteur de la fonction appelant en C++11

je veux remplir un std::vector (ou un autre conteneur STL): class Foo { public: Foo(int _n, const Bar &_m); private ... placer les fonctionnalités sémantiques et ainsi de suite) pour éviter la copie redondante et les appels de constructeur?
demandé sur 2011-06-02 11:14:47
3
réponses

Pourquoi ne retour d'un std::facultatif se déplacent parfois et parfois la copie?

Voir l'exemple ci-dessous de retourner une option de UserName - un meuble/copiable classe. std::optional<UserName> ... ;int> foo() { std::unique_ptr<int> p; return {p}; // uses copy of unique_ptr and so it breaks... }
demandé sur 2018-07-18 16:02:34
1
réponses

Déplacement ou optimisation de la valeur de retour désignée (NRVO)?

disons que nous avons le code suivant: std::vector<int> f() { std::vector<int> y; ... return y; } st ... lacez f() dans x, détruire f(). Est le compilateur libre d'utiliser l'une ou l'autre approche, conformément à la norme?
demandé sur 2011-06-04 04:31:32
4
réponses

Comprendre l'optimisation de la valeur de retour et le retour temporel - C++

s'il vous Plaît examiner les trois fonctions. std::string get_a_string() { return "hello"; } std::string get_a_strin ... e dans le code ci-dessus? Je crois que c'est correct puisque je le rends par valeur plutôt que par référence. des idées?
demandé sur 2009-09-08 18:05:35
1
réponses

Pourquoi Visual C++ n'effectue-t-il pas l'optimisation de la valeur de retour sur le code le plus trivial?

est-ce que Visual C++ n'effectue pas l'optimisation de la valeur de retour? #include <cstdio> struct Foo ... imprime: destruction... La destruction... pourquoi n'exécute-t-il pas RVO?
demandé sur 2012-07-31 02:04:31
4
réponses

Est-ce que RVO travaille sur les membres d'objet?

considérer ce qui suit: struct A { /* ... */ }; A foo() { auto p = std::make_pair(A{}, 2); // ... do something return p.first; } auto a = foo(); Sera p.first être copiés, déplacés ou RVO-ed?
demandé sur 2015-10-26 14:09:30
3
réponses

Utilisation efficace de la sémantique des mouvements avec (N)RVO

disons que je veux implémenter une fonction qui est censée traiter un objet et retourner un nouvel objet (éventuelleme ... lerait un constructeur de déménagement tout en revenant. Est-il possible d'éliminer cela en (N)RVO? Merci!
demandé sur 2012-03-31 06:56:52