Bonjour, j'ai un probleme de manipulation de stream.
Voilà une partie du code :
Pour le header (Driver.hh) :
Pour l'implementation (Driver.cc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Driver{ //Plein de trucs.... // dont void setFileIn(const std::string& filein); // Fait ce qu'elle doit faire pour le fichier de données. //..... public : std::string fileoutname; std::ostream& outstream = std::cout; Driver(const std::string& filein="",const std::string& fileout=""); };
Je compile bien avec le standard C++11 justement pour swap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include"Driver.hh" //plein de trucs... //...... Driver::Driver(const std::string& filein/*=""*/, const std::string& fileout/*=""*/) { if(!filein.empty()) {setFileIn(filein);} if(!fileout.empty()) { std::ofstream tmp (fileout.c_str()); tmp.swap(outstream); } }
Et la première (mais pas la dernière !!) erreur du compilateur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2g++ -c -std=c++11 Driver.cc
Pourtant ici on me dit le contraire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 In constructor Driver::Driver(const string&, const string&): Driver.cc:64:11: error: std::ofstream has no member named swap tmp.swap(outstream); ^
Une idée ? (sur ce problème... ou sur une autre facon de faire, je suis preneur !)
Partager