I am overloading the input stream operator for use with a Time class and would like to manually set the failbit of the input stream if the input doesn\'t match my expected time
Yes, you can set it with ios::setstate
, like so:
#include <iostream>
#include <ios>
int main()
{
std::cout << "Hi\n";
std::cout.setstate(std::ios::failbit);
std::cout << "Fail!\n";
}
The second output will not be produced because cout
is in the failed state.
(An exception seems cleaner to me, but YMMV)