32#ifndef _RWSTD_LOC_FACET_H_INCLUDED
33#define _RWSTD_LOC_FACET_H_INCLUDED
57 typedef __rw_facet* (_C_ctor_t)(_RWSTD_SIZE_T,
const char*);
59#if !defined (_MSC_VER) || 5 <= _RWSTD_VER_MAJOR
67 explicit __rw_facet (_RWSTD_SIZE_T = 0);
69 virtual ~__rw_facet ();
91 _C_collate, _C_collate_byname,
93 _C_codecvt, _C_codecvt_byname,
94 _C_ctype, _C_ctype_byname,
96 _C_moneypunct, _C_moneypunct_byname,
97 _C_moneypunct_intl, _C_moneypunct_intl_byname,
98 _C_money_get, _C_nonexistent_0,
99 _C_money_put, _C_nonexistent_1,
101 _C_numpunct, _C_numpunct_byname,
102 _C_num_get, _C_nonexistent_2,
103 _C_num_put, _C_nonexistent_3,
105 _C_time_get, _C_time_get_byname,
106 _C_time_put, _C_time_put_byname,
108 _C_messages, _C_messages_byname,
113 _C_wcollate, _C_wcollate_byname,
114 _C_wcodecvt, _C_wcodecvt_byname,
115 _C_wctype, _C_wctype_byname,
116 _C_wmoneypunct, _C_wmoneypunct_byname,
117 _C_wmoneypunct_intl, _C_wmoneypunct_intl_byname,
118 _C_wmoney_get, _C_nonexistent_4,
119 _C_wmoney_put, _C_nonexistent_5,
120 _C_wnumpunct, _C_wnumpunct_byname,
121 _C_wnum_get, _C_nonexistent_6,
122 _C_wnum_put, _C_nonexistent_7,
123 _C_wtime_get, _C_wtime_get_byname,
124 _C_wtime_put, _C_wtime_put_byname,
125 _C_wmessages, _C_wmessages_byname,
137 _C_last_type = _C_wmessages_byname
142 _C_signed = 0x100, _C_ptr = 0x200, _C_cont = 0x400,
143 _C_integral = 0x800, _C_floating = 0x1000, _C_typemask = 0x00ff,
145 _C_char = 1 | _C_integral,
146 _C_uchar = 2 | _C_integral, _C_schar = _C_uchar | _C_signed,
147 _C_ushort = 3 | _C_integral, _C_short = _C_ushort | _C_signed,
148 _C_uint = 4 | _C_integral, _C_int = _C_uint | _C_signed,
149 _C_ulong = 5 | _C_integral, _C_long = _C_ulong | _C_signed,
150 _C_ullong = 6 | _C_integral, _C_llong = _C_ullong | _C_signed,
151 _C_float = 7 | _C_floating,
152 _C_double = 8 | _C_floating,
153 _C_ldouble = 9 | _C_floating,
154 _C_void = 10, _C_pvoid = _C_void | _C_ptr,
161 _C_prepend_cat_sep = 0x01,
166 _C_use_cat_names = 0x02,
173 _C_condensed_name = 0x04,
192 const void* _C_data ()
const {
193 return _C_impsize ? _C_impdata
197 const char* _C_get_name ()
const {
198 return _C_name ? _C_name :
"C";
204 void _C_set_name (
const char*,
char*, _RWSTD_SIZE_T);
208 const void *_C_impdata;
209 _RWSTD_SIZE_T _C_impsize;
213 _C_facet_type _C_type;
214 _RWSTD_SIZE_T _C_ref;
215 _RWSTD_SIZE_T *_C_pid;
220 __rw_facet (
const __rw_facet&);
221 void operator= (
const __rw_facet&);
223 const void* _C_get_data ();
226 _C_manage (__rw_facet*, _C_facet_type,
const char*, _C_ctor_t*);
228 friend struct _STD::locale;
229 friend class __rw_locale;
230 friend struct __rw_facet_id;
231 friend struct __rw_access;
237#ifdef _RWSTD_NO_SPECIALIZED_FACET_ID
247 enum _C_init_id { _C_Init };
249 __rw_facet_id (_C_init_id = _C_Init) {
261 __rw_facet_id (
const __rw_facet_id&);
262 void operator= (
const __rw_facet_id&);
266 _RWSTD_SIZE_T _C_init ()
const;
270 friend class __rw_locale;
271 friend struct _STD::locale;
272 friend struct __rw_access;
278__rw_get_facet_data (
int, _RWSTD_SIZE_T&,
const char*,
const char* = 0);
281void __rw_release_facet_data (
const void*, _RWSTD_SIZE_T);
#define _RWSTD_CLASS_EXPORT
#define _RWSTD_NAMESPACE(name)
#define _RWSTD_CONST_CAST(T, x)