35 #define _OSTREAM_TCC 1
37 #pragma GCC system_header
41 namespace std _GLIBCXX_VISIBILITY(default)
43 _GLIBCXX_BEGIN_NAMESPACE_VERSION
45 template<
typename _CharT,
typename _Traits>
48 : _M_ok(false), _M_os(__os)
60 template<
typename _CharT,
typename _Traits>
61 template<
typename _ValueT>
73 if (__np.
put(*
this, *
this, this->fill(), __v).failed())
79 __throw_exception_again;
89 template<
typename _CharT,
typename _Traits>
90 basic_ostream<_CharT, _Traits>&
98 return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
100 return _M_insert(static_cast<long>(__n));
103 template<
typename _CharT,
typename _Traits>
112 return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
114 return _M_insert(static_cast<long>(__n));
117 template<
typename _CharT,
typename _Traits>
124 if (__cerb && __sbin)
128 if (!__copy_streambufs(__sbin, this->
rdbuf()))
134 __throw_exception_again;
146 template<
typename _CharT,
typename _Traits>
163 const int_type __put = this->
rdbuf()->sputc(__c);
164 if (traits_type::eq_int_type(__put, traits_type::eof()))
170 __throw_exception_again;
180 template<
typename _CharT,
typename _Traits>
200 __throw_exception_again;
208 template<
typename _CharT,
typename _Traits>
219 if (this->
rdbuf() && this->
rdbuf()->pubsync() == -1)
225 __throw_exception_again;
234 template<
typename _CharT,
typename _Traits>
235 typename basic_ostream<_CharT, _Traits>::pos_type
239 pos_type __ret = pos_type(-1);
248 __throw_exception_again;
255 template<
typename _CharT,
typename _Traits>
267 const pos_type __p = this->
rdbuf()->pubseekpos(__pos,
271 if (__p == pos_type(off_type(-1)))
278 __throw_exception_again;
287 template<
typename _CharT,
typename _Traits>
290 seekp(off_type __off, ios_base::seekdir __dir)
299 const pos_type __p = this->
rdbuf()->pubseekoff(__off, __dir,
303 if (__p == pos_type(off_type(-1)))
310 __throw_exception_again;
319 template<
typename _CharT,
typename _Traits>
321 operator<<(basic_ostream<_CharT, _Traits>& __out,
const char* __s)
335 __ptr_guard (_CharT *__ip): __p(__ip) { }
336 ~__ptr_guard() {
delete[] __p; }
337 _CharT* __get() {
return __p; }
338 } __pg (
new _CharT[__clen]);
340 _CharT *__ws = __pg.__get();
341 for (
size_t __i = 0; __i < __clen; ++__i)
342 __ws[__i] = __out.widen(__s[__i]);
343 __ostream_insert(__out, __ws, __clen);
348 __throw_exception_again;
358 #if _GLIBCXX_EXTERN_TEMPLATE
359 extern template class basic_ostream<char>;
370 extern template ostream& ostream::_M_insert(
long);
371 extern template ostream& ostream::_M_insert(
unsigned long);
372 extern template ostream& ostream::_M_insert(
bool);
373 #ifdef _GLIBCXX_USE_LONG_LONG
374 extern template ostream& ostream::_M_insert(
long long);
375 extern template ostream& ostream::_M_insert(
unsigned long long);
377 extern template ostream& ostream::_M_insert(
double);
378 extern template ostream& ostream::_M_insert(
long double);
379 extern template ostream& ostream::_M_insert(
const void*);
381 #ifdef _GLIBCXX_USE_WCHAR_T
382 extern template class basic_ostream<wchar_t>;
391 extern template wostream& wostream::_M_insert(
long);
392 extern template wostream& wostream::_M_insert(
unsigned long);
393 extern template wostream& wostream::_M_insert(
bool);
394 #ifdef _GLIBCXX_USE_LONG_LONG
395 extern template wostream& wostream::_M_insert(
long long);
396 extern template wostream& wostream::_M_insert(
unsigned long long);
398 extern template wostream& wostream::_M_insert(
double);
399 extern template wostream& wostream::_M_insert(
long double);
400 extern template wostream& wostream::_M_insert(
const void*);
404 _GLIBCXX_END_NAMESPACE_VERSION