|
|
//casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation | //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation |
//is larger than ptrdiff_t one. | //is larger than ptrdiff_t one. |
_STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) || | _STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) || |
(sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed) |
((sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed)) |
ptrdiff_t __pad = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), | ptrdiff_t __pad = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), |
__STATIC_CAST(streamsize, __wid - __len))); | __STATIC_CAST(streamsize, __wid - __len))); |
ios_base::fmtflags __dir = __flg & ios_base::adjustfield; | ios_base::fmtflags __dir = __flg & ios_base::adjustfield; |
|
|
//casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation | //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation |
//is larger than ptrdiff_t one. | //is larger than ptrdiff_t one. |
_STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) || | _STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) || |
(sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed) |
((sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed)) |
ptrdiff_t __request = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), _Num - __n)); | ptrdiff_t __request = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), _Num - __n)); |
| |
const _CharT* __p = __scan_delim(__first, __last); | const _CharT* __p = __scan_delim(__first, __last); |
|
|
#endif | #endif |
| |
template <class _Facet> | template <class _Facet> |
bool _HasFacet(const locale& __loc, const _Facet* __facet) _STLP_NOTHROW |
bool _HasFacet(const locale& __loc, const _Facet*) _STLP_NOTHROW |
{ return (__loc._M_get_facet(_Facet::id) != 0); } | { return (__loc._M_get_facet(_Facet::id) != 0); } |
| |
template <class _Facet> | template <class _Facet> |
_Facet* _UseFacet(const locale& __loc, const _Facet* __facet) |
_Facet* _UseFacet(const locale& __loc, const _Facet*) |
{ return __STATIC_CAST(_Facet*, __loc._M_use_facet(_Facet::id)); } | { return __STATIC_CAST(_Facet*, __loc._M_use_facet(_Facet::id)); } |
| |
_STLP_END_NAMESPACE | _STLP_END_NAMESPACE |
|
|
template <class _ForwardIter, class _Tp, | template <class _ForwardIter, class _Tp, |
class _Compare1, class _Compare2, class _Distance> | class _Compare1, class _Compare2, class _Distance> |
_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, | _ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, |
_Compare1 __comp1, _Compare2 __comp2, _Distance*) { |
_Compare1 _STLP_VERBOSE_PARAM(__comp1), _Compare2 __comp2, _Distance*) { |
_Distance __len = distance(__first, __last); | _Distance __len = distance(__first, __last); |
_Distance __half; | _Distance __half; |
| |
|
|
| |
template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance> | template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance> |
_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, | _ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, |
_Compare1 __comp1, _Compare2 __comp2, _Distance*) { |
_Compare1 __comp1, _Compare2 _STLP_VERBOSE_PARAM(__comp2), _Distance*) { |
_Distance __len = distance(__first, __last); | _Distance __len = distance(__first, __last); |
_Distance __half; | _Distance __half; |
_ForwardIter __middle; | _ForwardIter __middle; |
|
|
| |
#if !defined (_STLP_DEBUG) | #if !defined (_STLP_DEBUG) |
# define _STLP_VERBOSE_ASSERT(expr,diagnostic) | # define _STLP_VERBOSE_ASSERT(expr,diagnostic) |
|
# define _STLP_VERBOSE_PARAM(param) |
# define _STLP_DEBUG_CHECK(expr) | # define _STLP_DEBUG_CHECK(expr) |
# define _STLP_DEBUG_DO(expr) | # define _STLP_DEBUG_DO(expr) |
#endif | #endif |
|
|
} | } |
# endif | # endif |
| |
|
# define _STLP_VERBOSE_PARAM(param) param |
# define _STLP_DEBUG_CHECK(expr) _STLP_ASSERT(expr) | # define _STLP_DEBUG_CHECK(expr) _STLP_ASSERT(expr) |
# define _STLP_DEBUG_DO(expr) expr; | # define _STLP_DEBUG_DO(expr) expr; |
| |
|
|
} | } |
| |
void strstreambuf::_M_free(char* p) { | void strstreambuf::_M_free(char* p) { |
if (p) |
if (p) { |
if (_M_free_fun) | if (_M_free_fun) |
_M_free_fun(p); | _M_free_fun(p); |
else | else |
delete[] p; | delete[] p; |
|
} |
} | } |
| |
void strstreambuf::_M_setup(char* get, char* put, streamsize n) { | void strstreambuf::_M_setup(char* get, char* put, streamsize n) { |