1 // Locale support -*- C++ -*-
3 // Copyright (C) 1999-2014 Free Software Foundation, Inc.
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // Under Section 7 of GPL version 3, you are granted additional
17 // permissions described in the GCC Runtime Library Exception, version
18 // 3.1, as published by the Free Software Foundation.
20 // You should have received a copy of the GNU General Public License and
21 // a copy of the GCC Runtime Library Exception along with this program;
22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 // <http://www.gnu.org/licenses/>.
26 // ISO C++ 14882: 22.1 Locales
31 // Instantiation configuration.
37 namespace std
_GLIBCXX_VISIBILITY(default)
39 _GLIBCXX_BEGIN_NAMESPACE_VERSION
41 // moneypunct, money_get, and money_put
42 template class moneypunct
<C
, false>;
43 template class moneypunct
<C
, true>;
44 template struct __moneypunct_cache
<C
, false>;
45 template struct __moneypunct_cache
<C
, true>;
46 template class moneypunct_byname
<C
, false>;
47 template class moneypunct_byname
<C
, true>;
48 _GLIBCXX_BEGIN_NAMESPACE_LDBL
49 template class money_get
<C
, istreambuf_iterator
<C
> >;
50 template class money_put
<C
, ostreambuf_iterator
<C
> >;
52 istreambuf_iterator
<C
>
53 money_get
<C
, istreambuf_iterator
<C
> >::
54 _M_extract
<true>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
55 ios_base
&, ios_base::iostate
&, string
&) const;
58 istreambuf_iterator
<C
>
59 money_get
<C
, istreambuf_iterator
<C
> >::
60 _M_extract
<false>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
61 ios_base
&, ios_base::iostate
&, string
&) const;
64 ostreambuf_iterator
<C
>
65 money_put
<C
, ostreambuf_iterator
<C
> >::
66 _M_insert
<true>(ostreambuf_iterator
<C
>, ios_base
&, C
,
67 const string_type
&) const;
70 ostreambuf_iterator
<C
>
71 money_put
<C
, ostreambuf_iterator
<C
> >::
72 _M_insert
<false>(ostreambuf_iterator
<C
>, ios_base
&, C
,
73 const string_type
&) const;
74 _GLIBCXX_END_NAMESPACE_LDBL
76 // numpunct, numpunct_byname, num_get, and num_put
77 template class numpunct
<C
>;
78 template struct __numpunct_cache
<C
>;
79 template class numpunct_byname
<C
>;
80 _GLIBCXX_BEGIN_NAMESPACE_LDBL
81 template class num_get
<C
, istreambuf_iterator
<C
> >;
82 template class num_put
<C
, ostreambuf_iterator
<C
> >;
84 istreambuf_iterator
<C
>
85 num_get
<C
, istreambuf_iterator
<C
> >::
86 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
87 ios_base
&, ios_base::iostate
&,
91 istreambuf_iterator
<C
>
92 num_get
<C
, istreambuf_iterator
<C
> >::
93 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
94 ios_base
&, ios_base::iostate
&,
95 unsigned short&) const;
98 istreambuf_iterator
<C
>
99 num_get
<C
, istreambuf_iterator
<C
> >::
100 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
101 ios_base
&, ios_base::iostate
&,
102 unsigned int&) const;
105 istreambuf_iterator
<C
>
106 num_get
<C
, istreambuf_iterator
<C
> >::
107 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
108 ios_base
&, ios_base::iostate
&,
109 unsigned long&) const;
111 #ifdef _GLIBCXX_USE_LONG_LONG
113 istreambuf_iterator
<C
>
114 num_get
<C
, istreambuf_iterator
<C
> >::
115 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
116 ios_base
&, ios_base::iostate
&,
120 istreambuf_iterator
<C
>
121 num_get
<C
, istreambuf_iterator
<C
> >::
122 _M_extract_int(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
123 ios_base
&, ios_base::iostate
&,
124 unsigned long long&) const;
128 ostreambuf_iterator
<C
>
129 num_put
<C
, ostreambuf_iterator
<C
> >::
130 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
134 ostreambuf_iterator
<C
>
135 num_put
<C
, ostreambuf_iterator
<C
> >::
136 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
137 unsigned long) const;
139 #ifdef _GLIBCXX_USE_LONG_LONG
141 ostreambuf_iterator
<C
>
142 num_put
<C
, ostreambuf_iterator
<C
> >::
143 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
147 ostreambuf_iterator
<C
>
148 num_put
<C
, ostreambuf_iterator
<C
> >::
149 _M_insert_int(ostreambuf_iterator
<C
>, ios_base
&, C
,
150 unsigned long long) const;
154 ostreambuf_iterator
<C
>
155 num_put
<C
, ostreambuf_iterator
<C
> >::
156 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
160 ostreambuf_iterator
<C
>
161 num_put
<C
, ostreambuf_iterator
<C
> >::
162 _M_insert_float(ostreambuf_iterator
<C
>, ios_base
&, C
, char,
164 _GLIBCXX_END_NAMESPACE_LDBL
166 // time_get and time_put
167 template class __timepunct
<C
>;
168 template struct __timepunct_cache
<C
>;
169 template class time_put
<C
, ostreambuf_iterator
<C
> >;
170 template class time_put_byname
<C
, ostreambuf_iterator
<C
> >;
171 template class time_get
<C
, istreambuf_iterator
<C
> >;
172 template class time_get_byname
<C
, istreambuf_iterator
<C
> >;
175 template class messages
<C
>;
176 template class messages_byname
<C
>;
179 inline template class __ctype_abstract_base
<C
>;
180 template class ctype_byname
<C
>;
183 inline template class __codecvt_abstract_base
<C
, char, mbstate_t>;
184 template class codecvt_byname
<C
, char, mbstate_t>;
187 template class collate
<C
>;
188 template class collate_byname
<C
>;
193 use_facet
<ctype
<C
> >(const locale
&);
196 const codecvt
<C
, char, mbstate_t>&
197 use_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
201 use_facet
<collate
<C
> >(const locale
&);
205 use_facet
<numpunct
<C
> >(const locale
&);
209 use_facet
<num_put
<C
> >(const locale
&);
213 use_facet
<num_get
<C
> >(const locale
&);
216 const moneypunct
<C
, true>&
217 use_facet
<moneypunct
<C
, true> >(const locale
&);
220 const moneypunct
<C
, false>&
221 use_facet
<moneypunct
<C
, false> >(const locale
&);
225 use_facet
<money_put
<C
> >(const locale
&);
229 use_facet
<money_get
<C
> >(const locale
&);
232 const __timepunct
<C
>&
233 use_facet
<__timepunct
<C
> >(const locale
&);
237 use_facet
<time_put
<C
> >(const locale
&);
241 use_facet
<time_get
<C
> >(const locale
&);
245 use_facet
<messages
<C
> >(const locale
&);
250 has_facet
<ctype
<C
> >(const locale
&);
254 has_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
258 has_facet
<collate
<C
> >(const locale
&);
262 has_facet
<numpunct
<C
> >(const locale
&);
266 has_facet
<num_put
<C
> >(const locale
&);
270 has_facet
<num_get
<C
> >(const locale
&);
274 has_facet
<moneypunct
<C
> >(const locale
&);
278 has_facet
<money_put
<C
> >(const locale
&);
282 has_facet
<money_get
<C
> >(const locale
&);
286 has_facet
<__timepunct
<C
> >(const locale
&);
290 has_facet
<time_put
<C
> >(const locale
&);
294 has_facet
<time_get
<C
> >(const locale
&);
298 has_facet
<messages
<C
> >(const locale
&);
304 __add_grouping
<C
>(C
*, C
, char const*, size_t,
307 template class __pad
<C
, char_traits
<C
> >;
311 __int_to_char(C
*, unsigned long, const C
*,
312 ios_base::fmtflags
, bool);
314 #ifdef _GLIBCXX_USE_LONG_LONG
317 __int_to_char(C
*, unsigned long long, const C
*,
318 ios_base::fmtflags
, bool);
321 _GLIBCXX_END_NAMESPACE_VERSION
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