1 // Locale support -*- C++ -*-
3 // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4 // Free Software Foundation, Inc.
6 // This file is part of the GNU ISO C++ Library. This library is free
7 // software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the
9 // Free Software Foundation; either version 2, or (at your option)
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING. If not, write to the Free
19 // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22 // As a special exception, you may use this file as part of a free software
23 // library without restriction. Specifically, if other files instantiate
24 // templates or use macros or inline functions from this file, or you compile
25 // this file and link it with other files to produce an executable, this
26 // file does not by itself cause the resulting executable to be covered by
27 // the GNU General Public License. This exception does not however
28 // invalidate any other reasons why the executable file might be covered by
29 // the GNU General Public License.
32 // ISO C++ 14882: 22.1 Locales
37 // Instantiation configuration.
43 _GLIBCXX_BEGIN_NAMESPACE(std
)
45 // moneypunct, money_get, and money_put
46 template class moneypunct
<C
, false>;
47 template class moneypunct
<C
, true>;
48 template struct __moneypunct_cache
<C
, false>;
49 template struct __moneypunct_cache
<C
, true>;
50 template class moneypunct_byname
<C
, false>;
51 template class moneypunct_byname
<C
, true>;
52 _GLIBCXX_BEGIN_LDBL_NAMESPACE
53 template class money_get
<C
, istreambuf_iterator
<C
> >;
54 template class money_put
<C
, ostreambuf_iterator
<C
> >;
56 istreambuf_iterator
<C
>
57 money_get
<C
, istreambuf_iterator
<C
> >::
58 _M_extract
<true>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
59 ios_base
&, ios_base::iostate
&, string
&) const;
62 istreambuf_iterator
<C
>
63 money_get
<C
, istreambuf_iterator
<C
> >::
64 _M_extract
<false>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
65 ios_base
&, ios_base::iostate
&, string
&) const;
68 ostreambuf_iterator
<C
>
69 money_put
<C
, ostreambuf_iterator
<C
> >::
70 _M_insert
<true>(ostreambuf_iterator
<C
>, ios_base
&, C
,
71 const string_type
&) const;
74 ostreambuf_iterator
<C
>
75 money_put
<C
, ostreambuf_iterator
<C
> >::
76 _M_insert
<false>(ostreambuf_iterator
<C
>, ios_base
&, C
,
77 const string_type
&) const;
78 _GLIBCXX_END_LDBL_NAMESPACE
80 // numpunct, numpunct_byname, num_get, and num_put
81 template class numpunct
<C
>;
82 template struct __numpunct_cache
<C
>;
83 template class numpunct_byname
<C
>;
84 _GLIBCXX_BEGIN_LDBL_NAMESPACE
85 template class num_get
<C
, istreambuf_iterator
<C
> >;
86 template class num_put
<C
, ostreambuf_iterator
<C
> >;
88 istreambuf_iterator
<C
>
89 num_get
<C
, istreambuf_iterator
<C
> >::
90 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
91 ios_base
&, ios_base::iostate
&,
95 istreambuf_iterator
<C
>
96 num_get
<C
, istreambuf_iterator
<C
> >::
97 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
98 ios_base
&, ios_base::iostate
&,
99 unsigned short&) const;
102 istreambuf_iterator
<C
>
103 num_get
<C
, istreambuf_iterator
<C
> >::
104 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
105 ios_base
&, ios_base::iostate
&,
106 unsigned int&) const;
109 istreambuf_iterator
<C
>
110 num_get
<C
, istreambuf_iterator
<C
> >::
111 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
112 ios_base
&, ios_base::iostate
&,
113 unsigned long&) const;
115 #ifdef _GLIBCXX_USE_LONG_LONG
117 istreambuf_iterator
<C
>
118 num_get
<C
, istreambuf_iterator
<C
> >::
119 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
120 ios_base
&, ios_base::iostate
&,
124 istreambuf_iterator
<C
>
125 num_get
<C
, istreambuf_iterator
<C
> >::
126 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
127 ios_base
&, ios_base::iostate
&,
128 unsigned long long&) const;
132 ostreambuf_iterator
<C
>
133 num_put
<C
, ostreambuf_iterator
<C
> >::
134 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
138 ostreambuf_iterator
<C
>
139 num_put
<C
, ostreambuf_iterator
<C
> >::
140 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
141 unsigned long) const;
143 #ifdef _GLIBCXX_USE_LONG_LONG
145 ostreambuf_iterator
<C
>
146 num_put
<C
, ostreambuf_iterator
<C
> >::
147 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
151 ostreambuf_iterator
<C
>
152 num_put
<C
, ostreambuf_iterator
<C
> >::
153 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
154 unsigned long long) const;
158 ostreambuf_iterator
<C
>
159 num_put
<C
, ostreambuf_iterator
<C
> >::
160 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
164 ostreambuf_iterator
<C
>
165 num_put
<C
, ostreambuf_iterator
<C
> >::
166 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
168 _GLIBCXX_END_LDBL_NAMESPACE
170 // time_get and time_put
171 template class __timepunct
<C
>;
172 template struct __timepunct_cache
<C
>;
173 template class time_put
<C
, ostreambuf_iterator
<C
> >;
174 template class time_put_byname
<C
, ostreambuf_iterator
<C
> >;
175 template class time_get
<C
, istreambuf_iterator
<C
> >;
176 template class time_get_byname
<C
, istreambuf_iterator
<C
> >;
179 template class messages
<C
>;
180 template class messages_byname
<C
>;
183 inline template class __ctype_abstract_base
<C
>;
184 template class ctype_byname
<C
>;
187 inline template class __codecvt_abstract_base
<C
, char, mbstate_t>;
188 template class codecvt_byname
<C
, char, mbstate_t>;
191 template class collate
<C
>;
192 template class collate_byname
<C
>;
195 // NB: use_facet<ctype> is specialized
197 const codecvt
<C
, char, mbstate_t>&
198 use_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
202 use_facet
<collate
<C
> >(const locale
&);
206 use_facet
<numpunct
<C
> >(const locale
&);
210 use_facet
<num_put
<C
> >(const locale
&);
214 use_facet
<num_get
<C
> >(const locale
&);
217 const moneypunct
<C
, true>&
218 use_facet
<moneypunct
<C
, true> >(const locale
&);
221 const moneypunct
<C
, false>&
222 use_facet
<moneypunct
<C
, false> >(const locale
&);
226 use_facet
<money_put
<C
> >(const locale
&);
230 use_facet
<money_get
<C
> >(const locale
&);
233 const __timepunct
<C
>&
234 use_facet
<__timepunct
<C
> >(const locale
&);
238 use_facet
<time_put
<C
> >(const locale
&);
242 use_facet
<time_get
<C
> >(const locale
&);
246 use_facet
<messages
<C
> >(const locale
&);
251 has_facet
<ctype
<C
> >(const locale
&);
255 has_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
259 has_facet
<collate
<C
> >(const locale
&);
263 has_facet
<numpunct
<C
> >(const locale
&);
267 has_facet
<num_put
<C
> >(const locale
&);
271 has_facet
<num_get
<C
> >(const locale
&);
275 has_facet
<moneypunct
<C
> >(const locale
&);
279 has_facet
<money_put
<C
> >(const locale
&);
283 has_facet
<money_get
<C
> >(const locale
&);
287 has_facet
<__timepunct
<C
> >(const locale
&);
291 has_facet
<time_put
<C
> >(const locale
&);
295 has_facet
<time_get
<C
> >(const locale
&);
299 has_facet
<messages
<C
> >(const locale
&);
305 __add_grouping
<C
>(C
*, C
, char const*, size_t,
308 template class __pad
<C
, char_traits
<C
> >;
312 __int_to_char(C
*, unsigned long, const C
*,
313 ios_base::fmtflags
, bool);
315 #ifdef _GLIBCXX_USE_LONG_LONG
318 __int_to_char(C
*, unsigned long long, const C
*,
319 ios_base::fmtflags
, bool);
322 _GLIBCXX_END_NAMESPACE
324 // XXX GLIBCXX_ABI Deprecated
325 #if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char
327 #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
328 extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
330 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
331 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
332 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
333 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
334 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
335 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
336 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
337 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
338 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
339 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
340 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
341 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
342 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_
,
343 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_
);
344 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_
,
345 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_
);
346 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_
,
347 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_
);
348 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_
,
349 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_
);
350 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_
,
351 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
);
352 _GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
,
353 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_
);
354 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs
,
355 _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
);
356 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs
,
357 _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
);
358 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs
,
359 _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs
);
360 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs
,
361 _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs
);
363 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT