Salut à tous et bonne année !

Voila, j'ai un petit problème, petit car je pourrai passer par des moyens détourné. Je vous explique, j'ai un fichier configuration à charger, simple fichier texte listant un certain nombre de données dans un certain ordre. J'aimerais y ajouter des commentaires, précédé d'un '#' par exemple. Jusque là, il n'y a pas de soucis.

Oui, mais voila, je voudrai que ça soit complètement transparent à l'utilisation, je souhaiterai pouvoir faire des "file>>value" qui ignorerai automatiquement les commentaires. Pour cela, deux solutions me sont venus à l'esprit, l'encapsulation tout d'abord ou la dérivation ensuite.

la dérivation par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
class CFileConfig : public std::ifstream
{
public:
	CFileConfig(const char * filename):std::ifstream(filename){};
	~CFileConfig();
};
 
/* plus loin */
CFileConfig file("file.txt");
int var1,var2;
file>>var1>>var2;

Mon problème est donc surdéfinir l'opérateur >> afin qu'il garde la capacité d'écrire dans n'importe quel type de donnée tout en ignorant les lignes commencant par un #...


Merci d'avance pour vos pistes

Edit: Oula, je viens de me rendre compte que ce message risque de ne pas être au bon endroit…