fstream + boost
-
Hi,
#pragma once #include <string> #include <boost/filesystem/fstream.hpp> using namespace boost; using namespace filesystem; using namespace std; int main() { fstream f(""); return 0; }1>d:\test\main.cpp(11) : error C2872: 'fstream' : ambiguous symbol
1> could be 'c:\program files\microsoft visual studio 8\vc\include\iosfwd(714) : std::basic_fstream<_Elem,_Traits> std::fstream'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> or 'c:\boost\include\boost-1_33_1\boost\filesystem\fstream.hpp(182) : boost::filesystem::fstream'???
-
Na dann würde ich doch mal explizit angeben, welches von beiden du meisnt. Das passiert eben, wenn man einfach alle Namensräume einbindet.
-
Ich will natürlich den 1337 boost fstream. Ich wusste nur noch, dass <string> mir auch <fstream> reinhaut

-
Ahso. <boost/filesystem/fstream.hpp> haut mit den <fstream> rein. Mmmmh. Was sol ich jetzt machen? Immer explizit filesystem::fstream schreiben?
-
Kurze Antwort: Ja.
Lange Antwort: Alternativ kannst du auch das 'using namspace std;' weglassen und nur die Namen in den globalen Namensraum ziehen, die du wirklich benötigst (z.B. per 'using std::string;').