1 // Locale support -*- C++ -*-
3 // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4 // 2009 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 3, 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 // Under Section 7 of GPL version 3, you are granted additional
18 // permissions described in the GCC Runtime Library Exception, version
19 // 3.1, as published by the Free Software Foundation.
21 // You should have received a copy of the GNU General Public License and
22 // a copy of the GCC Runtime Library Exception along with this program;
23 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 // <http://www.gnu.org/licenses/>.
27 // ISO C++ 14882: 22.1 Locales
32 // Instantiation configuration.
38 _GLIBCXX_BEGIN_NAMESPACE(std
)
40 // moneypunct, money_get, and money_put
41 template class moneypunct
<C
, false>;
42 template class moneypunct
<C
, true>;
43 template struct __moneypunct_cache
<C
, false>;
44 template struct __moneypunct_cache
<C
, true>;
45 template class moneypunct_byname
<C
, false>;
46 template class moneypunct_byname
<C
, true>;
47 _GLIBCXX_BEGIN_LDBL_NAMESPACE
48 template class money_get
<C
, istreambuf_iterator
<C
> >;
49 template class money_put
<C
, ostreambuf_iterator
<C
> >;
51 istreambuf_iterator
<C
>
52 money_get
<C
, istreambuf_iterator
<C
> >::
53 _M_extract
<true>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
54 ios_base
&, ios_base::iostate
&, string
&) const;
57 istreambuf_iterator
<C
>
58 money_get
<C
, istreambuf_iterator
<C
> >::
59 _M_extract
<false>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
60 ios_base
&, ios_base::iostate
&, string
&) const;
63 ostreambuf_iterator
<C
>
64 money_put
<C
, ostreambuf_iterator
<C
> >::
65 _M_insert
<true>(ostreambuf_iterator
<C
>, ios_base
&, C
,
66 const string_type
&) const;
69 ostreambuf_iterator
<C
>
70 money_put
<C
, ostreambuf_iterator
<C
> >::
71 _M_insert
<false>(ostreambuf_iterator
<C
>, ios_base
&, C
,
72 const string_type
&) const;
73 _GLIBCXX_END_LDBL_NAMESPACE
75 // numpunct, numpunct_byname, num_get, and num_put
76 template class numpunct
<C
>;
77 template struct __numpunct_cache
<C
>;
78 template class numpunct_byname
<C
>;
79 _GLIBCXX_BEGIN_LDBL_NAMESPACE
80 template class num_get
<C
, istreambuf_iterator
<C
> >;
81 template class num_put
<C
, ostreambuf_iterator
<C
> >;
83 istreambuf_iterator
<C
>
84 num_get
<C
, istreambuf_iterator
<C
> >::
85 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
86 ios_base
&, ios_base::iostate
&,
90 istreambuf_iterator
<C
>
91 num_get
<C
, istreambuf_iterator
<C
> >::
92 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
93 ios_base
&, ios_base::iostate
&,
94 unsigned short&) const;
97 istreambuf_iterator
<C
>
98 num_get
<C
, istreambuf_iterator
<C
> >::
99 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
100 ios_base
&, ios_base::iostate
&,
101 unsigned int&) const;
104 istreambuf_iterator
<C
>
105 num_get
<C
, istreambuf_iterator
<C
> >::
106 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
107 ios_base
&, ios_base::iostate
&,
108 unsigned long&) const;
110 #ifdef _GLIBCXX_USE_LONG_LONG
112 istreambuf_iterator
<C
>
113 num_get
<C
, istreambuf_iterator
<C
> >::
114 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
115 ios_base
&, ios_base::iostate
&,
119 istreambuf_iterator
<C
>
120 num_get
<C
, istreambuf_iterator
<C
> >::
121 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
122 ios_base
&, ios_base::iostate
&,
123 unsigned long long&) const;
127 ostreambuf_iterator
<C
>
128 num_put
<C
, ostreambuf_iterator
<C
> >::
129 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
133 ostreambuf_iterator
<C
>
134 num_put
<C
, ostreambuf_iterator
<C
> >::
135 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
136 unsigned long) const;
138 #ifdef _GLIBCXX_USE_LONG_LONG
140 ostreambuf_iterator
<C
>
141 num_put
<C
, ostreambuf_iterator
<C
> >::
142 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
146 ostreambuf_iterator
<C
>
147 num_put
<C
, ostreambuf_iterator
<C
> >::
148 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
149 unsigned long long) const;
153 ostreambuf_iterator
<C
>
154 num_put
<C
, ostreambuf_iterator
<C
> >::
155 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
159 ostreambuf_iterator
<C
>
160 num_put
<C
, ostreambuf_iterator
<C
> >::
161 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
163 _GLIBCXX_END_LDBL_NAMESPACE
165 // time_get and time_put
166 template class __timepunct
<C
>;
167 template struct __timepunct_cache
<C
>;
168 template class time_put
<C
, ostreambuf_iterator
<C
> >;
169 template class time_put_byname
<C
, ostreambuf_iterator
<C
> >;
170 template class time_get
<C
, istreambuf_iterator
<C
> >;
171 template class time_get_byname
<C
, istreambuf_iterator
<C
> >;
174 template class messages
<C
>;
175 template class messages_byname
<C
>;
178 inline template class __ctype_abstract_base
<C
>;
179 template class ctype_byname
<C
>;
182 inline template class __codecvt_abstract_base
<C
, char, mbstate_t>;
183 template class codecvt_byname
<C
, char, mbstate_t>;
186 template class collate
<C
>;
187 template class collate_byname
<C
>;
192 use_facet
<ctype
<C
> >(const locale
&);
195 const codecvt
<C
, char, mbstate_t>&
196 use_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
200 use_facet
<collate
<C
> >(const locale
&);
204 use_facet
<numpunct
<C
> >(const locale
&);
208 use_facet
<num_put
<C
> >(const locale
&);
212 use_facet
<num_get
<C
> >(const locale
&);
215 const moneypunct
<C
, true>&
216 use_facet
<moneypunct
<C
, true> >(const locale
&);
219 const moneypunct
<C
, false>&
220 use_facet
<moneypunct
<C
, false> >(const locale
&);
224 use_facet
<money_put
<C
> >(const locale
&);
228 use_facet
<money_get
<C
> >(const locale
&);
231 const __timepunct
<C
>&
232 use_facet
<__timepunct
<C
> >(const locale
&);
236 use_facet
<time_put
<C
> >(const locale
&);
240 use_facet
<time_get
<C
> >(const locale
&);
244 use_facet
<messages
<C
> >(const locale
&);
249 has_facet
<ctype
<C
> >(const locale
&);
253 has_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
257 has_facet
<collate
<C
> >(const locale
&);
261 has_facet
<numpunct
<C
> >(const locale
&);
265 has_facet
<num_put
<C
> >(const locale
&);
269 has_facet
<num_get
<C
> >(const locale
&);
273 has_facet
<moneypunct
<C
> >(const locale
&);
277 has_facet
<money_put
<C
> >(const locale
&);
281 has_facet
<money_get
<C
> >(const locale
&);
285 has_facet
<__timepunct
<C
> >(const locale
&);
289 has_facet
<time_put
<C
> >(const locale
&);
293 has_facet
<time_get
<C
> >(const locale
&);
297 has_facet
<messages
<C
> >(const locale
&);
303 __add_grouping
<C
>(C
*, C
, char const*, size_t,
306 template class __pad
<C
, char_traits
<C
> >;
310 __int_to_char(C
*, unsigned long, const C
*,
311 ios_base::fmtflags
, bool);
313 #ifdef _GLIBCXX_USE_LONG_LONG
316 __int_to_char(C
*, unsigned long long, const C
*,
317 ios_base::fmtflags
, bool);
320 _GLIBCXX_END_NAMESPACE
322 // XXX GLIBCXX_ABI Deprecated
323 #if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char
325 #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
326 extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
328 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
329 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
330 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
331 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
332 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
333 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
334 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
335 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
336 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
337 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
338 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
339 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
340 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_
,
341 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_
);
342 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_
,
343 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_
);
344 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_
,
345 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_
);
346 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_
,
347 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_
);
348 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_
,
349 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
);
350 _GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
,
351 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_
);
352 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs
,
353 _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
);
354 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs
,
355 _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
);
356 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs
,
357 _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs
);
358 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs
,
359 _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs
);
361 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT