Требуется принять один аргумент, как вы заметили, но реализации позволяют расширять функции-члены с помощью параметров со значениями по умолчанию (§17.6.5.5).Другими словами, пока это работает:
mystream.setstate( std::ios_base::badbit );
ваш компилятор соответствует.Ничто не говорит о том, что ваш код не должен работать, хотя.
(Ваша библиотечная реализация решила, что логический параметр будет полезен.значение по умолчанию, но вы все равно можете попасть на территорию, специфичную для реализации, и сами представить аргумент. Является ли это хорошей идеей, это, очевидно, другой вопрос, но, вероятно, нет.)