Я использую 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
Ошибка 2: инициализация аргумента 2 для 'std :: basic_filebuf <_CharT, _Traits> * std :: basic_filebuf <_CharT, _Traits> :: open (const char *, std :: _ Ios_Openmode) [with _CharT = char, _Traits = std: : char_traits]
Насколько я могу судить по поиску в Google, g ++ фактически нарушает стандарт C ++. Который я нахожу довольно удивительным, так как они вообще очень строго соответствуют стандарту. Это тот случай? Или я что-то не так делаю.
Моя ссылка на стандарт: http://www.cplusplus.com/reference/iostream/ofstream/open/