pb de stockage de retour de fonctions dans une reference
Je m'explique :
Voici un code simple :
Code:
1 2 3 4 5 6 7 8
|
int foo()
{
int v=0;
return v;
}
int& w = foo(); // ne compile pas |
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.
Donc pour l'instant tout est OK.
Cependant, si je remplace le int par un vector, ca marche :
Code:
1 2 3 4 5 6 7 8
|
vector<int> foo()
{
vector<int> v;
return v;
}
vector<int>& w = foo(); // compile OK mais pourquoi ? |
Et en fait, je devrais la aussi avoir un pb de compile, et pourtant ca passe.
Quelqu'un pourrait m'expliquer ?