書いとかないと忘れそうなのでメモ gcc の basic_ios は以下のような operator void* と operator! を持っているので //@{ /** * @brief The quick-and-easy status check. * * This allows you to write constructs such as * "if (!a_stream) ..." and "while (a_stream) ..." */ operator void*() const { return this->fail() ? 0 : const_cast<basic_ios*>(this); } bool operator!() const { return this->fail(); } //@} 以下のように if (in.read(buf, size)) // o