При выполнении этих кодов:
std::fstream f;
if(f.open("n",std::fstream::in)) //ERROR
Получена ошибка:
не удалось преобразовать 'f.std :: basic_fstream :: open (((const char * ) "n"), (((std :: ios_base :: openmode) std :: ios_base :: in)) 'из' void 'в' bool '
Но при запуске того же кода с filebuf
объект работает нормально:
std::filebuf f;
if(f.open("n",std::fstream::in)) //works fine
почему это происходит, когда оба объекта fstream
и filebuf
могут использоваться для вызова open
?