IIRC, stream insertors and extractors are already convertible to a bool type for the purpose you're thinking of, and that doesn't mitigate the possibility for exceptions. But I have to say I don't think that insertors or extractors are exceptional operations... they usually always attempt to do their work, and return a bad stream if something happened. Unless you're one of those people who opt to throw an exception instead of say program by cases...