1 // Locale support -*- C++ -*-
3 // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4 // 2009, 2011 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 namespace std
_GLIBCXX_VISIBILITY(default)
40 _GLIBCXX_BEGIN_NAMESPACE_VERSION
42 // moneypunct, money_get, and money_put
43 template class moneypunct
<C
, false>;
44 template class moneypunct
<C
, true>;
45 template struct __moneypunct_cache
<C
, false>;
46 template struct __moneypunct_cache
<C
, true>;
47 template class moneypunct_byname
<C
, false>;
48 template class moneypunct_byname
<C
, true>;
49 _GLIBCXX_BEGIN_NAMESPACE_LDBL
50 template class money_get
<C
, istreambuf_iterator
<C
> >;
51 template class money_put
<C
, ostreambuf_iterator
<C
> >;
53 istreambuf_iterator
<C
>
54 money_get
<C
, istreambuf_iterator
<C
> >::
55 _M_extract
<true>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
56 ios_base
&, ios_base::iostate
&, string
&) const;
59 istreambuf_iterator
<C
>
60 money_get
<C
, istreambuf_iterator
<C
> >::
61 _M_extract
<false>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
62 ios_base
&, ios_base::iostate
&, string
&) const;
65 ostreambuf_iterator
<C
>
66 money_put
<C
, ostreambuf_iterator
<C
> >::
67 _M_insert
<true>(ostreambuf_iterator
<C
>, ios_base
&, C
,
68 const string_type
&) const;
71 ostreambuf_iterator
<C
>
72 money_put
<C
, ostreambuf_iterator
<C
> >::
73 _M_insert
<false>(ostreambuf_iterator
<C
>, ios_base
&, C
,
74 const string_type
&) const;
75 _GLIBCXX_END_NAMESPACE_LDBL
77 // numpunct, numpunct_byname, num_get, and num_put
78 template class numpunct
<C
>;
79 template struct __numpunct_cache
<C
>;
80 template class numpunct_byname
<C
>;
81 _GLIBCXX_BEGIN_NAMESPACE_LDBL
82 template class num_get
<C
, istreambuf_iterator
<C
> >;
83 template class num_put
<C
, ostreambuf_iterator
<C
> >;
85 istreambuf_iterator
<C
>
86 num_get
<C
, istreambuf_iterator
<C
> >::
87 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
88 ios_base
&, ios_base::iostate
&,
92 istreambuf_iterator
<C
>
93 num_get
<C
, istreambuf_iterator
<C
> >::
94 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
95 ios_base
&, ios_base::iostate
&,
96 unsigned short&) const;
99 istreambuf_iterator
<C
>
100 num_get
<C
, istreambuf_iterator
<C
> >::
101 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
102 ios_base
&, ios_base::iostate
&,
103 unsigned int&) const;
106 istreambuf_iterator
<C
>
107 num_get
<C
, istreambuf_iterator
<C
> >::
108 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
109 ios_base
&, ios_base::iostate
&,
110 unsigned long&) const;
112 #ifdef _GLIBCXX_USE_LONG_LONG
114 istreambuf_iterator
<C
>
115 num_get
<C
, istreambuf_iterator
<C
> >::
116 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
117 ios_base
&, ios_base::iostate
&,
121 istreambuf_iterator
<C
>
122 num_get
<C
, istreambuf_iterator
<C
> >::
123 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
124 ios_base
&, ios_base::iostate
&,
125 unsigned long long&) const;
129 ostreambuf_iterator
<C
>
130 num_put
<C
, ostreambuf_iterator
<C
> >::
131 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
135 ostreambuf_iterator
<C
>
136 num_put
<C
, ostreambuf_iterator
<C
> >::
137 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
138 unsigned long) const;
140 #ifdef _GLIBCXX_USE_LONG_LONG
142 ostreambuf_iterator
<C
>
143 num_put
<C
, ostreambuf_iterator
<C
> >::
144 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
148 ostreambuf_iterator
<C
>
149 num_put
<C
, ostreambuf_iterator
<C
> >::
150 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
151 unsigned long long) const;
155 ostreambuf_iterator
<C
>
156 num_put
<C
, ostreambuf_iterator
<C
> >::
157 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
161 ostreambuf_iterator
<C
>
162 num_put
<C
, ostreambuf_iterator
<C
> >::
163 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
165 _GLIBCXX_END_NAMESPACE_LDBL
167 // time_get and time_put
168 template class __timepunct
<C
>;
169 template struct __timepunct_cache
<C
>;
170 template class time_put
<C
, ostreambuf_iterator
<C
> >;
171 template class time_put_byname
<C
, ostreambuf_iterator
<C
> >;
172 template class time_get
<C
, istreambuf_iterator
<C
> >;
173 template class time_get_byname
<C
, istreambuf_iterator
<C
> >;
176 template class messages
<C
>;
177 template class messages_byname
<C
>;
180 inline template class __ctype_abstract_base
<C
>;
181 template class ctype_byname
<C
>;
184 inline template class __codecvt_abstract_base
<C
, char, mbstate_t>;
185 template class codecvt_byname
<C
, char, mbstate_t>;
188 template class collate
<C
>;
189 template class collate_byname
<C
>;
194 use_facet
<ctype
<C
> >(const locale
&);
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_VERSION
325 // XXX GLIBCXX_ABI Deprecated
326 #if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char
328 #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
329 extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
331 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
332 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
333 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
334 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
335 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
336 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
337 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
338 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
339 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
340 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
341 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_
,
342 _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
);
343 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_
,
344 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_
);
345 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_
,
346 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_
);
347 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_
,
348 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_
);
349 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_
,
350 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_
);
351 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_
,
352 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
);
353 _GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
,
354 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_
);
355 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs
,
356 _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
);
357 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs
,
358 _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
);
359 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs
,
360 _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs
);
361 _GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs
,
362 _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs
);
364 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT