Je souhaite créer un interpréteur, capable de lire cin ou un fichier, selon un argument de ligne de commande.

Supposons le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
int main(int argc, char*[] argv) {
//validation des arguments 
 
//sélection du flux
istream input = (argc == 1 ? cin : ifstream(argv[1]));
 
int x, y;
input >> x >> y;
cout << x << " : "<< y << endl;
}
Sauf que cela pose plusieurs problèmes: le istream ne devrait pas être copié, et il doit être modifiable.
Cela correspond assez bien à une référence non constante.

Certes, mais comment l'initialiser, sans créer un ifstream si j'utilise cin?