Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
libcxx/include/locale
Show First 20 Lines • Show All 571 Lines • ▼ Show 20 Lines | __num_get<_CharT>::__stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp, char* __a, char*& __a_end, | ||||
} | } | ||||
*__a_end++ = __x; | *__a_end++ = __x; | ||||
if (__f >= 22) | if (__f >= 22) | ||||
return 0; | return 0; | ||||
++__dc; | ++__dc; | ||||
return 0; | return 0; | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<char>) | extern template struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<wchar_t>) | extern template struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > | template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > | ||||
class _LIBCPP_TEMPLATE_VIS num_get | class _LIBCPP_TEMPLATE_VIS num_get | ||||
: public locale::facet, | : public locale::facet, | ||||
private __num_get<_CharT> | private __num_get<_CharT> | ||||
{ | { | ||||
public: | public: | ||||
▲ Show 20 Lines • Show All 521 Lines • ▼ Show 20 Lines | num_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, | ||||
if (__libcpp_sscanf_l(__buf.c_str(), _LIBCPP_GET_C_LOCALE, "%p", &__v) != 1) | if (__libcpp_sscanf_l(__buf.c_str(), _LIBCPP_GET_C_LOCALE, "%p", &__v) != 1) | ||||
__err = ios_base::failbit; | __err = ios_base::failbit; | ||||
// EOF checked | // EOF checked | ||||
if (__b == __e) | if (__b == __e) | ||||
__err |= ios_base::eofbit; | __err |= ios_base::eofbit; | ||||
return __b; | return __b; | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<wchar_t>; | ||||
#endif | #endif | ||||
struct _LIBCPP_TYPE_VIS __num_put_base | struct _LIBCPP_TYPE_VIS __num_put_base | ||||
{ | { | ||||
protected: | protected: | ||||
static void __format_int(char* __fmt, const char* __len, bool __signd, | static void __format_int(char* __fmt, const char* __len, bool __signd, | ||||
ios_base::fmtflags __flags); | ios_base::fmtflags __flags); | ||||
static bool __format_float(char* __fmt, const char* __len, | static bool __format_float(char* __fmt, const char* __len, | ||||
▲ Show 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | __num_put<_CharT>::__widen_and_group_float(char* __nb, char* __np, char* __ne, | ||||
__ct.widen(__nf, __ne, __oe); | __ct.widen(__nf, __ne, __oe); | ||||
__oe += __ne - __nf; | __oe += __ne - __nf; | ||||
if (__np == __ne) | if (__np == __ne) | ||||
__op = __oe; | __op = __oe; | ||||
else | else | ||||
__op = __ob + (__np - __nb); | __op = __ob + (__np - __nb); | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<char>) | extern template struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<wchar_t>) | extern template struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > | template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > | ||||
class _LIBCPP_TEMPLATE_VIS num_put | class _LIBCPP_TEMPLATE_VIS num_put | ||||
: public locale::facet, | : public locale::facet, | ||||
private __num_put<_CharT> | private __num_put<_CharT> | ||||
{ | { | ||||
public: | public: | ||||
▲ Show 20 Lines • Show All 352 Lines • ▼ Show 20 Lines | if (__np == __ne) | ||||
__op = __oe; | __op = __oe; | ||||
else | else | ||||
__op = __o + (__np - __nar); | __op = __o + (__np - __nar); | ||||
// [__o, __oe) contains wide number | // [__o, __oe) contains wide number | ||||
// Stage 3 & 4 | // Stage 3 & 4 | ||||
return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); | return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_put<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_put<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_put<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_put<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT, class _InputIterator> | template <class _CharT, class _InputIterator> | ||||
_LIBCPP_HIDDEN | _LIBCPP_HIDDEN | ||||
int | int | ||||
__get_up_to_n_digits(_InputIterator& __b, _InputIterator __e, | __get_up_to_n_digits(_InputIterator& __b, _InputIterator __e, | ||||
ios_base::iostate& __err, const ctype<_CharT>& __ct, int __n) | ios_base::iostate& __err, const ctype<_CharT>& __ct, int __n) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 671 Lines • ▼ Show 20 Lines | case '%': | ||||
__get_percent(__b, __e, __err, __ct); | __get_percent(__b, __e, __err, __ct); | ||||
break; | break; | ||||
default: | default: | ||||
__err |= ios_base::failbit; | __err |= ios_base::failbit; | ||||
} | } | ||||
return __b; | return __b; | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get<wchar_t>; | ||||
#endif | #endif | ||||
class _LIBCPP_TYPE_VIS __time_get | class _LIBCPP_TYPE_VIS __time_get | ||||
{ | { | ||||
protected: | protected: | ||||
locale_t __loc_; | locale_t __loc_; | ||||
__time_get(const char* __nm); | __time_get(const char* __nm); | ||||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | private: | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
virtual const string_type& __r() const {return this->__r_;} | virtual const string_type& __r() const {return this->__r_;} | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
virtual const string_type& __x() const {return this->__x_;} | virtual const string_type& __x() const {return this->__x_;} | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
virtual const string_type& __X() const {return this->__X_;} | virtual const string_type& __X() const {return this->__X_;} | ||||
}; | }; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get_byname<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get_byname<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get_byname<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get_byname<wchar_t>; | ||||
#endif | #endif | ||||
class _LIBCPP_TYPE_VIS __time_put | class _LIBCPP_TYPE_VIS __time_put | ||||
{ | { | ||||
locale_t __loc_; | locale_t __loc_; | ||||
protected: | protected: | ||||
_LIBCPP_INLINE_VISIBILITY __time_put() : __loc_(_LIBCPP_GET_C_LOCALE) {} | _LIBCPP_INLINE_VISIBILITY __time_put() : __loc_(_LIBCPP_GET_C_LOCALE) {} | ||||
__time_put(const char* __nm); | __time_put(const char* __nm); | ||||
▲ Show 20 Lines • Show All 96 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
char_type __nar[100]; | char_type __nar[100]; | ||||
char_type* __nb = __nar; | char_type* __nb = __nar; | ||||
char_type* __ne = __nb + 100; | char_type* __ne = __nb + 100; | ||||
__do_put(__nb, __ne, __tm, __fmt, __mod); | __do_put(__nb, __ne, __tm, __fmt, __mod); | ||||
return _VSTD::copy(__nb, __ne, __s); | return _VSTD::copy(__nb, __ne, __s); | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > | template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > | ||||
class _LIBCPP_TEMPLATE_VIS time_put_byname | class _LIBCPP_TEMPLATE_VIS time_put_byname | ||||
: public time_put<_CharT, _OutputIterator> | : public time_put<_CharT, _OutputIterator> | ||||
{ | { | ||||
public: | public: | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
explicit time_put_byname(const char* __nm, size_t __refs = 0) | explicit time_put_byname(const char* __nm, size_t __refs = 0) | ||||
: time_put<_CharT, _OutputIterator>(__nm, __refs) {} | : time_put<_CharT, _OutputIterator>(__nm, __refs) {} | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
explicit time_put_byname(const string& __nm, size_t __refs = 0) | explicit time_put_byname(const string& __nm, size_t __refs = 0) | ||||
: time_put<_CharT, _OutputIterator>(__nm, __refs) {} | : time_put<_CharT, _OutputIterator>(__nm, __refs) {} | ||||
protected: | protected: | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
~time_put_byname() {} | ~time_put_byname() {} | ||||
}; | }; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put_byname<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put_byname<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put_byname<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put_byname<wchar_t>; | ||||
#endif | #endif | ||||
// money_base | // money_base | ||||
class _LIBCPP_TYPE_VIS money_base | class _LIBCPP_TYPE_VIS money_base | ||||
{ | { | ||||
public: | public: | ||||
enum part {none, space, symbol, sign, value}; | enum part {none, space, symbol, sign, value}; | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | |||||
template <class _CharT, bool _International> | template <class _CharT, bool _International> | ||||
locale::id | locale::id | ||||
moneypunct<_CharT, _International>::id; | moneypunct<_CharT, _International>::id; | ||||
template <class _CharT, bool _International> | template <class _CharT, bool _International> | ||||
const bool | const bool | ||||
moneypunct<_CharT, _International>::intl; | moneypunct<_CharT, _International>::intl; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<char, false>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<char, false>; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<char, true>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<char, true>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar_t, false>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar_t, false>; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar_t, true>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar_t, true>; | ||||
#endif | #endif | ||||
// moneypunct_byname | // moneypunct_byname | ||||
template <class _CharT, bool _International = false> | template <class _CharT, bool _International = false> | ||||
class _LIBCPP_TEMPLATE_VIS moneypunct_byname | class _LIBCPP_TEMPLATE_VIS moneypunct_byname | ||||
: public moneypunct<_CharT, _International> | : public moneypunct<_CharT, _International> | ||||
{ | { | ||||
Show All 35 Lines | private: | ||||
pattern __pos_format_; | pattern __pos_format_; | ||||
pattern __neg_format_; | pattern __neg_format_; | ||||
void init(const char*); | void init(const char*); | ||||
}; | }; | ||||
template<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, false>::init(const char*); | template<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, false>::init(const char*); | ||||
template<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, true>::init(const char*); | template<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, true>::init(const char*); | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, false>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, false>; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, true>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, true>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
template<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, false>::init(const char*); | template<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, false>::init(const char*); | ||||
template<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, true>::init(const char*); | template<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, true>::init(const char*); | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<wchar_t, false>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<wchar_t, false>; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<wchar_t, true>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<wchar_t, true>; | ||||
#endif | #endif | ||||
// money_get | // money_get | ||||
template <class _CharT> | template <class _CharT> | ||||
class __money_get | class __money_get | ||||
{ | { | ||||
protected: | protected: | ||||
Show All 40 Lines | else | ||||
__dp = __mp.decimal_point(); | __dp = __mp.decimal_point(); | ||||
__ts = __mp.thousands_sep(); | __ts = __mp.thousands_sep(); | ||||
__grp = __mp.grouping(); | __grp = __mp.grouping(); | ||||
__sym = __mp.curr_symbol(); | __sym = __mp.curr_symbol(); | ||||
__fd = __mp.frac_digits(); | __fd = __mp.frac_digits(); | ||||
} | } | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > | template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > | ||||
class _LIBCPP_TEMPLATE_VIS money_get | class _LIBCPP_TEMPLATE_VIS money_get | ||||
: public locale::facet, | : public locale::facet, | ||||
private __money_get<_CharT> | private __money_get<_CharT> | ||||
{ | { | ||||
public: | public: | ||||
▲ Show 20 Lines • Show All 350 Lines • ▼ Show 20 Lines | if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct, | ||||
break; | break; | ||||
__v.append(__w, __wn); | __v.append(__w, __wn); | ||||
} | } | ||||
if (__b == __e) | if (__b == __e) | ||||
__err |= ios_base::eofbit; | __err |= ios_base::eofbit; | ||||
return __b; | return __b; | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_get<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_get<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_get<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_get<wchar_t>; | ||||
#endif | #endif | ||||
// money_put | // money_put | ||||
template <class _CharT> | template <class _CharT> | ||||
class __money_put | class __money_put | ||||
{ | { | ||||
protected: | protected: | ||||
▲ Show 20 Lines • Show All 158 Lines • ▼ Show 20 Lines | if (__sn.size() > 1) | ||||
__me = _VSTD::copy(__sn.begin()+1, __sn.end(), __me); | __me = _VSTD::copy(__sn.begin()+1, __sn.end(), __me); | ||||
// set alignment | // set alignment | ||||
if ((__flags & ios_base::adjustfield) == ios_base::left) | if ((__flags & ios_base::adjustfield) == ios_base::left) | ||||
__mi = __me; | __mi = __me; | ||||
else if ((__flags & ios_base::adjustfield) != ios_base::internal) | else if ((__flags & ios_base::adjustfield) != ios_base::internal) | ||||
__mi = __mb; | __mi = __mb; | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > | template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > | ||||
class _LIBCPP_TEMPLATE_VIS money_put | class _LIBCPP_TEMPLATE_VIS money_put | ||||
: public locale::facet, | : public locale::facet, | ||||
private __money_put<_CharT> | private __money_put<_CharT> | ||||
{ | { | ||||
public: | public: | ||||
▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | money_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl, | ||||
char_type* __mi; | char_type* __mi; | ||||
char_type* __me; | char_type* __me; | ||||
this->__format(__mb, __mi, __me, __iob.flags(), | this->__format(__mb, __mi, __me, __iob.flags(), | ||||
__digits.data(), __digits.data() + __digits.size(), __ct, | __digits.data(), __digits.data() + __digits.size(), __ct, | ||||
__neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd); | __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd); | ||||
return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl); | return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl); | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_put<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_put<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_put<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_put<wchar_t>; | ||||
#endif | #endif | ||||
// messages | // messages | ||||
class _LIBCPP_TYPE_VIS messages_base | class _LIBCPP_TYPE_VIS messages_base | ||||
{ | { | ||||
public: | public: | ||||
typedef ptrdiff_t catalog; | typedef ptrdiff_t catalog; | ||||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | if (__c != -1) | ||||
__c <<= 1; | __c <<= 1; | ||||
nl_catd __cat = (nl_catd)__c; | nl_catd __cat = (nl_catd)__c; | ||||
catclose(__cat); | catclose(__cat); | ||||
#else // !_LIBCPP_HAS_CATOPEN | #else // !_LIBCPP_HAS_CATOPEN | ||||
(void)__c; | (void)__c; | ||||
#endif // _LIBCPP_HAS_CATOPEN | #endif // _LIBCPP_HAS_CATOPEN | ||||
} | } | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<wchar_t>; | ||||
#endif | #endif | ||||
template <class _CharT> | template <class _CharT> | ||||
class _LIBCPP_TEMPLATE_VIS messages_byname | class _LIBCPP_TEMPLATE_VIS messages_byname | ||||
: public messages<_CharT> | : public messages<_CharT> | ||||
{ | { | ||||
public: | public: | ||||
typedef messages_base::catalog catalog; | typedef messages_base::catalog catalog; | ||||
typedef basic_string<_CharT> string_type; | typedef basic_string<_CharT> string_type; | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
explicit messages_byname(const char*, size_t __refs = 0) | explicit messages_byname(const char*, size_t __refs = 0) | ||||
: messages<_CharT>(__refs) {} | : messages<_CharT>(__refs) {} | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
explicit messages_byname(const string&, size_t __refs = 0) | explicit messages_byname(const string&, size_t __refs = 0) | ||||
: messages<_CharT>(__refs) {} | : messages<_CharT>(__refs) {} | ||||
protected: | protected: | ||||
_LIBCPP_INLINE_VISIBILITY | _LIBCPP_INLINE_VISIBILITY | ||||
~messages_byname() {} | ~messages_byname() {} | ||||
}; | }; | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<char>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<char>; | ||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS | ||||
_LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<wchar_t>) | extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<wchar_t>; | ||||
#endif | #endif | ||||
template<class _Codecvt, class _Elem = wchar_t, | template<class _Codecvt, class _Elem = wchar_t, | ||||
class _Wide_alloc = allocator<_Elem>, | class _Wide_alloc = allocator<_Elem>, | ||||
class _Byte_alloc = allocator<char> > | class _Byte_alloc = allocator<char> > | ||||
class _LIBCPP_TEMPLATE_VIS wstring_convert | class _LIBCPP_TEMPLATE_VIS wstring_convert | ||||
{ | { | ||||
public: | public: | ||||
▲ Show 20 Lines • Show All 732 Lines • Show Last 20 Lines |