09/05/10 21:46:01
C++ code - 31 lines - codepad
URLリンク(codepad.org)
このソースはgccに付いてきた
std::complex<~>のstd::istream& operator>>(std::istream&,complex&);のソースなのですが、
この
if (__ch == ')')
__x = complex<_Tp>(__re_x, __im_x);
else
__is.setstate(ios_base::failbit);
が何をしているのか分かりません。
自分なりに推測するとstd::istreamで読み込んでいった結果、所定のフォーマットになっていない(閉じ括弧がおかしい)場合にエラーを伝えるべくsetstateとやらをしているようなのですが、
__is.setstate(ios_base::failbit);
ってどういう意味ないし効力なのでしょうか?