Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
971 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  RVO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

RVO

n°1929124
Glock 17Pr​o
Posté le 05-10-2009 à 21:07:15  profilanswer
 

Salut,
 
je viens d'être mis au parfum du concept de RVO
cela veut il dire que si on développe sur un compilo récent, il est préférable de passer les objets par valeur au fonction ?
le retour aussi ?
 
Merci


---------------
.
mood
Publicité
Posté le 05-10-2009 à 21:07:15  profilanswer
 

n°1929130
Un Program​meur
Posté le 05-10-2009 à 21:19:58  profilanswer
 

Pourquoi est-ce que tu penses qu'une optimisation concernant la valeur de retour a un effet sur le choix de la manière dont il faut passer des paramètres?


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1929134
Glock 17Pr​o
Posté le 05-10-2009 à 21:28:51  profilanswer
 

http://cpp.developpez.com/faq/cpp/ [...] vo_impacts
 
je pense pas je lis, je lis mal ?

Message cité 1 fois
Message édité par Glock 17Pro le 05-10-2009 à 21:32:41

---------------
.
n°1929140
Joel F
Real men use unique_ptr
Posté le 05-10-2009 à 22:26:03  profilanswer
 
n°1929150
Glock 17Pr​o
Posté le 05-10-2009 à 22:54:25  profilanswer
 

ça me choque là pour le coup qu'un passage par valeur soit moins gourmand qu'une ref


---------------
.
n°1929631
Un Program​meur
Posté le 07-10-2009 à 10:02:56  profilanswer
 


 
Oui.  Mais tu as une excuse, l'article en lui-meme cause de la confusion.  La (N)RVO n'a rien a faire ici.
 
Il faut regarder ce que tu compares.  Oui, c'est moins couteux de passer par copie que de passer par reference pour
faire une copie ensuite
dans les cas ou tu passes un temporaire car dans ce cas, le temporaire est utilise pour l'objet
local plutot que de le copier.
 
Ou intervient la (N)RVO, c'est lors de la generation du temporaire.  La (N)RVO permet d'avoir un constructeur de copie
en moins.
 
Donc petit tableau du nombre d'appels au constructeur de copie pour (note la ligne 6 quand COPIE n'est pas defini)

Code :
  1. #ifdef COPIE
  2. void f(T o) {
  3. }
  4. #else
  5. void f(T const& p) {
  6.    T o(p);
  7. }
  8. #endif
  9. T g() {
  10.    return T(42);
  11. }
  12. ...
  13. f(g());


 

             Ref  Copie
Sans RVO      2     1
Avec RVO      1     0


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1930491
Glock 17Pr​o
Posté le 09-10-2009 à 08:25:25  profilanswer
 

d'acc je vois un peu mieux ty


---------------
.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  RVO

 

Sujets relatifs
RVO et performance 
Plus de sujets relatifs à : RVO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR