37template <
class _CharT,
class _Traits,
class _NativeType>
38_STD::basic_ostream<_CharT, _Traits>&
39__rw_insert (_STD::basic_ostream<_CharT, _Traits> &__strm,
42 const typename _STD::basic_ostream<_CharT, _Traits>::sentry
47 typedef _STD::ostreambuf_iterator<_CharT, _Traits> _Iter;
48 typedef _STD::num_put<_CharT, _Iter> _NumPut;
51 .put (_Iter (__strm), __strm, __strm.fill (), __val).failed ()) {
56 __strm.setstate (_STD::ios_base::badbit);
60 __strm.setstate (_STD::ios_base::badbit | _RW::__rw_rethrow);
70template <
class _CharT,
class _Traits>
72__rw_sputn (_STD::basic_ostream<_CharT, _Traits> &__strm,
78 typedef typename _Traits::int_type _IntT;
80 const _IntT __ic = __strm.rdbuf ()->sputc (*__s);
82 return 0 + !_Traits::eq_int_type (_Traits::eof (), __ic);
85 return __strm.rdbuf ()->sputn (__s, __len);
91template <
class _CharT,
class _Traits>
93__rw_sputn (_STD::basic_ostream<_CharT, _Traits> &__strm,
98 const _STD::ctype<_CharT>& __ctp =
103 typedef typename _Traits::int_type _IntT;
105 const _IntT __ic = __strm.rdbuf ()->sputc (__ctp.widen (__s [__i]));
107 if (_Traits::eq_int_type (__ic, _Traits::eof ()))
116template<
class _CharT,
class _Traits,
class _StringT>
117_STD::basic_ostream<_CharT, _Traits>&
118__rw_insert (_STD::basic_ostream<_CharT, _Traits> &__strm,
126 _STD::ios_base::iostate __err = _STD::ios_base::goodbit;
136 const typename _STD::basic_ostream<_CharT, _Traits>::sentry
146 __rw_same_type<_CharT, _StringT>::_C_type _Same;
149 const int __padbits =
150 _STD::ios_base::adjustfield & __strm.flags ();
153 if ( _STD::ios_base::left != __padbits
154 && __pad != __strm._C_pad (__pad)
156 || __len != __rw_sputn (__strm, __s, __len, _Same ())
158 || _STD::ios_base::left == __padbits
159 && __pad != __strm._C_pad (__pad))
160 __err = _STD::ios_base::badbit;
161#ifndef _RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILURE
168 else if (__len == __rw_sputn (__strm, __s, __len, _Same ())) {
172 __err = _STD::ios_base::badbit;
174#ifdef _RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILURE
183 __strm.setstate (_STD::ios_base::badbit | _RW::__rw_rethrow);
188 __strm.setstate (__err);
#define _RWSTD_NAMESPACE(name)
#define _STD_USE_FACET(type, arg)
#define _RWSTD_STREAMSIZE
#define _RWSTD_ASSERT(ignore)