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