home *** CD-ROM | disk | FTP | other *** search
- // xlocale -- class locale exotic char member functions
- #include <istream>
- #include <locale>
- _STD_BEGIN
-
- typedef char_traits<char> _Traits;
- typedef istreambuf_iterator<char, _Traits> _Initer;
- typedef ostreambuf_iterator<char, _Traits> _Outiter;
-
- // facets associated with C categories
- #define ADDFAC(T, cat, pi, pl) \
- if ((_CATMASK(T::_Getcat()) & cat) == 0) \
- ; \
- else if (pl == 0) \
- pi->_Addfac(new T(_Lobj), T::id); \
- else \
- pi->_Addfac((locale::facet *)&_USE(*pl, T), T::id);
-
- typedef collate<char> _T5;
- typedef messages<char> _T6;
- typedef money_get<char, _Initer> _T7;
- typedef money_put<char, _Outiter> _T9;
- typedef moneypunct<char, false> _T11;
- typedef moneypunct<char, true> _T12;
- typedef time_get<char, _Initer> _T13;
- typedef time_put<char, _Outiter> _T14;
-
- template<> locale::id collate<char>::id;
- template<> locale::id messages<char>::id;
- template<> locale::id money_get<char, _Initer>::id;
- template<> locale::id money_put<char, _Outiter>::id;
- template<> locale::id moneypunct<char, false>::id;
- template<> locale::id moneypunct<char, true>::id;
- template<> locale::id time_get<char, _Initer>::id;
- template<> locale::id time_put<char, _Outiter>::id;
-
- void __cdecl locale::_Locimp::_Makexloc(const _Locinfo& _Lobj,
- locale::category _C, _Locimp *_Pi, const locale *_Pl)
- { // setup exotic char part of a new locale
- _Lockit _Lk;
- ADDFAC(_T5, _C, _Pi, _Pl);
- ADDFAC(_T6, _C, _Pi, _Pl);
- ADDFAC(_T7, _C, _Pi, _Pl);
- ADDFAC(_T9, _C, _Pi, _Pl);
- ADDFAC(_T11, _C, _Pi, _Pl);
- ADDFAC(_T12, _C, _Pi, _Pl);
- ADDFAC(_T13, _C, _Pi, _Pl);
- ADDFAC(_T14, _C, _Pi, _Pl);
- }
-
- _STD_END
-
- /*
- * Copyright (c) 1995 by P.J. Plauger. ALL RIGHTS RESERVED.
- * Consult your license regarding permissions and restrictions.
- */
-