2010-02-21 15 views

Répondre

10

Il s'agit d'une optimisation appelée optimisation de la valeur de retour (RVO). C'est une optimisation commune, mais vous ne pouvez pas compter dessus.

Voici deux vraiment excellents liens pour apprendre plus:

  1. Tout d'abord, un article très détaillé sur les pass by value, rvalue semantics, the return value optimization, and rvalue references and the move constructor and assignment operator in C++0x
  2. Deuxième, le bon vieux veille Wikipédia et their entry on the return value optimization.

L'article Wikipédia en particulier répond directement à votre question. Mais l'autre article va plus en profondeur sur l'ensemble de la question.

+0

Un lien peut être sympa. :-) – Omnifarious

+0

Plus d'informations à ce sujet si vous ne voulez pas le google: http://en.wikipedia.org/wiki/Return_value_optimization –

+1

Bon article sur ce sujet et sujets connexes: http://cpp-next.com/ archive/2009/08/want-speed-pass-by-value/ – ergosys