C ++ установить "пустым" или сбросить маску исключений ifstrean (ios) - PullRequest
0 голосов
/ 09 июня 2019

Есть ли способ сбросить маску исключений объекта ios на значение по умолчанию? (Это определяется стандартом?) Меня изначально интересовало ifstream, я дошел до ios, отслеживая наследование ifstream.

Я нашел обходной путь здесь , но это зависит от сохранения исходного состояния маски объекта в переменной, и это может быть недоступно.

1 Ответ

2 голосов
/ 09 июня 2019

Функции-члены exceptions наследуются от ios.Это std::ios_base::iostate, в котором можно установить 3 возможных бита: badbit, failbit и eofbit.«Состояние по умолчанию» std::ios_base::goodbit (0).Так что my_ifstream.exceptions(0) сбросит его (my_ifstream.exceptions(std::ios::goodbit) также будет работать и будет более понятным).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...