Bonjour, voulant revoir mes bases de C++, j'ai essayé ce code en m'attendant à recevoir une erreur de compilation, or ça compile ! (mingw 4.8)
Pouvez-vous me dire pourquoi ? Je pensais que j'allais recevoir un coup de boule du compilateur à la ligne " int & b = f(i); ", or ça marche, il ne devrait pas y avoir de problème avec les références ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include <iostream>
int & f(int & i) {
    i *= 2;
    return i;
}
int main() {
    int i = -3;
    int & b = f(i);
}