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