Je suis en train de tester les nouveautés du prochain standard à l'aide de gcc 4.5.
Je me demande pourquoi dans ce cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void f(int && i);
void f(int &i);
 
void g(int && i)
{
   f(i);
}
le compilateur choisit la version & de f et non la version &&.

Pour avoir l'utilisation de la version && il faut passer par une fonction intermédiaire de style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void g(int && i)
{
   f( std::move(i) );
}
J'aimerai donc comprendre l'intérêt de ce comportement ( j'imagine qu'il y en a un ).