我正在使用 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>
据我从谷歌搜索中得知,g++ 实际上在这里打破了 C++ 标准。我觉得这很令人惊讶,因为它们通常非常严格地符合标准。是这样吗?还是我做错了什么。
我对标准的参考:http ://www.cplusplus.com/reference/iostream/ofstream/open/