Можно ли сделать так, чтобы пользовательский поток работал как стандартный в отношении ошибок? То есть по умолчанию используются биты good/fail/bad/eof, а не исключения?
В документах boost упоминается только выдача std::failure для ошибок потока и разрешение распространения других ошибок (например, badalloc из-за попытки выделить буфер), однако код boost, похоже, не улавливает их, вместо этого полагаясь на пользовательский код для обработки их, но весь мой существующий код опирается на методы good(), bad() и т. д., а также на метод clear() в тех случаях, когда необходимо повторить попытку после ошибки.