@@ -71,7 +71,7 @@ class basic_ostream : virtual public basic_ios<_CharT, _Traits> {
7171
7272public:
7373 // 27.7.2.4 Prefix/suffix:
74- class sentry ;
74+ class _LIBCPP_EXPORTED_FROM_ABI sentry;
7575
7676 // 27.7.2.6 Formatted output:
7777 inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 basic_ostream& operator <<(basic_ostream& (*__pf)(basic_ostream&)) {
@@ -181,42 +181,38 @@ class basic_ostream : virtual public basic_ios<_CharT, _Traits> {
181181};
182182
183183template <class _CharT , class _Traits >
184- class basic_ostream <_CharT, _Traits>::sentry {
184+ class _LIBCPP_EXPORTED_FROM_ABI basic_ostream<_CharT, _Traits>::sentry {
185185 bool __ok_;
186186 basic_ostream<_CharT, _Traits>& __os_;
187187
188188public:
189- explicit sentry (basic_ostream<_CharT, _Traits>& __os);
190- ~sentry ();
191- sentry (const sentry&) = delete ;
192- sentry& operator =(const sentry&) = delete ;
193-
194- _LIBCPP_HIDE_FROM_ABI explicit operator bool () const { return __ok_; }
195- };
196-
197- template <class _CharT , class _Traits >
198- basic_ostream<_CharT, _Traits>::sentry::sentry (basic_ostream<_CharT, _Traits>& __os) : __ok_ (false ), __os_ (__os) {
199- if (__os.good ()) {
200- if (__os.tie ())
201- __os.tie ()->flush ();
202- __ok_ = true ;
189+ explicit sentry (basic_ostream<_CharT, _Traits>& __os) : __ok_(false ), __os_(__os) {
190+ if (__os.good ()) {
191+ if (__os.tie ())
192+ __os.tie ()->flush ();
193+ __ok_ = true ;
194+ }
203195 }
204- }
205196
206- template <class _CharT , class _Traits >
207- basic_ostream<_CharT, _Traits>::sentry::~sentry () {
208- if (__os_.rdbuf () && __os_.good () && (__os_.flags () & ios_base::unitbuf) && uncaught_exceptions () == 0 ) {
197+ ~sentry () {
198+ if (__os_.rdbuf () && __os_.good () && (__os_.flags () & ios_base::unitbuf) && uncaught_exceptions () == 0 ) {
209199# if _LIBCPP_HAS_EXCEPTIONS
210- try {
200+ try {
211201# endif // _LIBCPP_HAS_EXCEPTIONS
212- if (__os_.rdbuf ()->pubsync () == -1 )
213- __os_.setstate (ios_base::badbit);
202+ if (__os_.rdbuf ()->pubsync () == -1 )
203+ __os_.setstate (ios_base::badbit);
214204# if _LIBCPP_HAS_EXCEPTIONS
215- } catch (...) {
216- }
205+ } catch (...) {
206+ }
217207# endif // _LIBCPP_HAS_EXCEPTIONS
208+ }
218209 }
219- }
210+
211+ sentry (const sentry&) = delete ;
212+ sentry& operator =(const sentry&) = delete ;
213+
214+ _LIBCPP_HIDE_FROM_ABI explicit operator bool () const { return __ok_; }
215+ };
220216
221217template <class _CharT , class _Traits >
222218basic_ostream<_CharT, _Traits>::basic_ostream (basic_ostream&& __rhs) {
0 commit comments