title: Semantics of flags on basic_ios
body: <p>I find myself repeatedly baffled by the <code>rdstate()</code> flags - <code>good()</code>, <code>bad()</code>, <code>eof()</code>, <code>fail()</code> - and how they are expressed in <code>basic_ios::operator!</code>, <code>operator bool</code> and <code>operator void*</code>. </p>
  
  <p>Could somebody put me out of my misery and explain this so I never have to think twice again?</p>