format clean up
[official-gcc.git] / libstdc++-v3 / src / locale-inst.cc
blobe77c5c95d69e643e8303f7f139ddaf4066c4c4d5
1 // Locale support -*- C++ -*-
3 // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4 // 2009, 2011 Free Software Foundation, Inc.
5 //
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)
10 // any later version.
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
30 #include <locale>
32 // Instantiation configuration.
33 #ifndef C
34 # define C char
35 # define C_is_char
36 #endif
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> >;
52 template
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;
58 template
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;
64 template
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;
70 template
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> >;
84 template
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&,
89 long&) const;
91 template
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;
98 template
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;
105 template
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
113 template
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&,
118 long long&) const;
120 template
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;
126 #endif
128 template
129 ostreambuf_iterator<C>
130 num_put<C, ostreambuf_iterator<C> >::
131 _M_insert_int(ostreambuf_iterator<C>, ios_base&, C,
132 long) const;
134 template
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
141 template
142 ostreambuf_iterator<C>
143 num_put<C, ostreambuf_iterator<C> >::
144 _M_insert_int(ostreambuf_iterator<C>, ios_base&, C,
145 long long) const;
147 template
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;
152 #endif
154 template
155 ostreambuf_iterator<C>
156 num_put<C, ostreambuf_iterator<C> >::
157 _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char,
158 double) const;
160 template
161 ostreambuf_iterator<C>
162 num_put<C, ostreambuf_iterator<C> >::
163 _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char,
164 long double) const;
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> >;
175 // messages
176 template class messages<C>;
177 template class messages_byname<C>;
179 // ctype
180 inline template class __ctype_abstract_base<C>;
181 template class ctype_byname<C>;
183 // codecvt
184 inline template class __codecvt_abstract_base<C, char, mbstate_t>;
185 template class codecvt_byname<C, char, mbstate_t>;
187 // collate
188 template class collate<C>;
189 template class collate_byname<C>;
191 // use_facet
192 template
193 const ctype<C>&
194 use_facet<ctype<C> >(const locale&);
196 template
197 const codecvt<C, char, mbstate_t>&
198 use_facet<codecvt<C, char, mbstate_t> >(const locale&);
200 template
201 const collate<C>&
202 use_facet<collate<C> >(const locale&);
204 template
205 const numpunct<C>&
206 use_facet<numpunct<C> >(const locale&);
208 template
209 const num_put<C>&
210 use_facet<num_put<C> >(const locale&);
212 template
213 const num_get<C>&
214 use_facet<num_get<C> >(const locale&);
216 template
217 const moneypunct<C, true>&
218 use_facet<moneypunct<C, true> >(const locale&);
220 template
221 const moneypunct<C, false>&
222 use_facet<moneypunct<C, false> >(const locale&);
224 template
225 const money_put<C>&
226 use_facet<money_put<C> >(const locale&);
228 template
229 const money_get<C>&
230 use_facet<money_get<C> >(const locale&);
232 template
233 const __timepunct<C>&
234 use_facet<__timepunct<C> >(const locale&);
236 template
237 const time_put<C>&
238 use_facet<time_put<C> >(const locale&);
240 template
241 const time_get<C>&
242 use_facet<time_get<C> >(const locale&);
244 template
245 const messages<C>&
246 use_facet<messages<C> >(const locale&);
248 // has_facet
249 template
250 bool
251 has_facet<ctype<C> >(const locale&);
253 template
254 bool
255 has_facet<codecvt<C, char, mbstate_t> >(const locale&);
257 template
258 bool
259 has_facet<collate<C> >(const locale&);
261 template
262 bool
263 has_facet<numpunct<C> >(const locale&);
265 template
266 bool
267 has_facet<num_put<C> >(const locale&);
269 template
270 bool
271 has_facet<num_get<C> >(const locale&);
273 template
274 bool
275 has_facet<moneypunct<C> >(const locale&);
277 template
278 bool
279 has_facet<money_put<C> >(const locale&);
281 template
282 bool
283 has_facet<money_get<C> >(const locale&);
285 template
286 bool
287 has_facet<__timepunct<C> >(const locale&);
289 template
290 bool
291 has_facet<time_put<C> >(const locale&);
293 template
294 bool
295 has_facet<time_get<C> >(const locale&);
297 template
298 bool
299 has_facet<messages<C> >(const locale&);
302 // locale functions.
303 template
305 __add_grouping<C>(C*, C, char const*, size_t,
306 C const*, C const*);
308 template class __pad<C, char_traits<C> >;
310 template
312 __int_to_char(C*, unsigned long, const C*,
313 ios_base::fmtflags, bool);
315 #ifdef _GLIBCXX_USE_LONG_LONG
316 template
318 __int_to_char(C*, unsigned long long, const C*,
319 ios_base::fmtflags, bool);
320 #endif
322 _GLIBCXX_END_NAMESPACE_VERSION
323 } // namespace
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