私はg++を使用していくつかのコードをコンパイルしています。私は次のスニペットを書きました:
bool WriteAccess = true;
string Name = "my_file.txt";
ofstream File;
ios_base::open_mode Mode = std::ios_base::in | std::ios_base::binary;
if(WriteAccess)
Mode |= std::ios_base::out | std::ios_base::trunc;
File.open(Name.data(), Mode);
そして、私はこれらのエラーを受け取ります...なぜですか?
エラー1:「int」から「std :: _ Ios_Openmode」への無効な変換<br>エラー2:「std :: basic_filebuf <_CharT、_Traits> * std :: basic_filebuf <_CharT、_Traits> :: open( const char *、std :: _ Ios_Openmode)[with _CharT = char、_Traits = std :: char_traits]'<p>
Google検索からわかる限り、g++は実際にここでC++標準を破っています。それらは一般的に非常に厳密に規格に準拠しているので、私は非常に驚くべきことだと思います。これは本当ですか?または私は何か間違ったことをしていますか?
標準の私のリファレンス:http ://www.cplusplus.com/reference/iostream/ofstream/open/