of は何__cerbを意味するのだろうと思っていたところ、公式の C++ 標準ドキュメントに記載されているように、これは の短縮名のようです。libstdc++g++cerberos
§ 22.3.1 / 3:
[例: iostreamは次の
operator<<ように実装できます。template <class charT, class traits> basic_ostream<charT,traits>& operator<< (basic_ostream<charT,traits>& s, Date d) { // !!!!!!!!!! typename basic_ostream<charT,traits>::sentry cerberos(s); // <--- !! HERE !! // !!!!!!!!!! if (cerberos) { ios_base::iostate err = ios_base::iostate::goodbit; tm tmbuf; d.extract(tmbuf); use_facet<time_put<charT,ostreambuf_iterator<charT,traits> > >( s.getloc()).put(s, s, s.fill(), err, &tmbuf, ’x’); s.setstate(err); // might throw } return s; }— 終了例 ]
iostreamsentryオブジェクトが と呼ばれる理由とcerberos、cerberos実際の意味は何ですか?