Я использую istream, который может быть строковым потоком, ifstream или определяемым пользователем типом потока, и мне нужно знать, если в случае ifstream он не был открыт в двоичном режиме (поэтому я могу выдать исключение ). Я пробовал следующий метод:
if ((_is.flags() & ios::binary) == 0)
throw exception(...)
но исключений не бывает. В этом случае тест не пройден, потому что _is.flags () возвращает 0x201, а ios :: binary - 0x20. Есть ли способ узнать, был ли поток открыт в текстовом режиме?