void print_states( std::basic_ios<CharT, TraitsT>& stream ) { auto const states = stream.rdstate(); std::printf( "stream states: [goodbit: %s, failbit: %s, badbit: %s, eofbit: %s]\n", states == std::ios_base::goodbit ? "true" : "false", 0 != (states & std::ios_base::failbit) ? "true" : "false", 0 != (states & std::ios_base::badbit) ? "true" : "false", 0 != (states & std::ios_base::eofbit) ? "true" : "false" ); }