Je m'explique :
Voici un code simple :
Il ne compile pas car on ne peux pas stocker dans une ref la valeur de retour d'une fonction qui est une variable temporaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int foo() { int v=0; return v; } int& w = foo(); // ne compile pas
Donc pour l'instant tout est OK.
Cependant, si je remplace le int par un vector, ca marche :
Et en fait, je devrais la aussi avoir un pb de compile, et pourtant ca passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 vector<int> foo() { vector<int> v; return v; } vector<int>& w = foo(); // compile OK mais pourquoi ?
Quelqu'un pourrait m'expliquer ?
Partager