1 // Locale support -*- C++ -*-
3 // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
4 // 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 2, 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 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING. If not, write to the Free
19 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
22 // As a special exception, you may use this file as part of a free software
23 // library without restriction. Specifically, if other files instantiate
24 // templates or use macros or inline functions from this file, or you compile
25 // this file and link it with other files to produce an executable, this
26 // file does not by itself cause the resulting executable to be covered by
27 // the GNU General Public License. This exception does not however
28 // invalidate any other reasons why the executable file might be covered by
29 // the GNU General Public License.
32 // ISO C++ 14882: 22.1 Locales
37 // Instantiation configuration.
44 // moneypunct, money_get, and money_put
45 template class moneypunct
<C
, false>;
46 template class moneypunct
<C
, true>;
47 template struct __moneypunct_cache
<C
, false>;
48 template struct __moneypunct_cache
<C
, true>;
49 template class moneypunct_byname
<C
, false>;
50 template class moneypunct_byname
<C
, true>;
51 template class money_get
<C
, istreambuf_iterator
<C
> >;
52 template class money_put
<C
, ostreambuf_iterator
<C
> >;
54 istreambuf_iterator
<C
>
55 money_get
<C
, istreambuf_iterator
<C
> >::
56 _M_extract
<true>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
57 ios_base
&, ios_base::iostate
&, string
&) const;
60 istreambuf_iterator
<C
>
61 money_get
<C
, istreambuf_iterator
<C
> >::
62 _M_extract
<false>(istreambuf_iterator
<C
>, istreambuf_iterator
<C
>,
63 ios_base
&, ios_base::iostate
&, string
&) const;
66 ostreambuf_iterator
<C
>
67 money_put
<C
, ostreambuf_iterator
<C
> >::
68 _M_insert
<true>(ostreambuf_iterator
<C
>, ios_base
&, C
,
69 const string_type
&) const;
72 ostreambuf_iterator
<C
>
73 money_put
<C
, ostreambuf_iterator
<C
> >::
74 _M_insert
<false>(ostreambuf_iterator
<C
>, ios_base
&, C
,
75 const string_type
&) const;
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 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,
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
>;
190 // NB: use_facet<ctype> is specialized
192 const codecvt
<C
, char, mbstate_t>&
193 use_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
197 use_facet
<collate
<C
> >(const locale
&);
201 use_facet
<numpunct
<C
> >(const locale
&);
205 use_facet
<num_put
<C
> >(const locale
&);
209 use_facet
<num_get
<C
> >(const locale
&);
212 const moneypunct
<C
, true>&
213 use_facet
<moneypunct
<C
, true> >(const locale
&);
216 const moneypunct
<C
, false>&
217 use_facet
<moneypunct
<C
, false> >(const locale
&);
221 use_facet
<money_put
<C
> >(const locale
&);
225 use_facet
<money_get
<C
> >(const locale
&);
228 const __timepunct
<C
>&
229 use_facet
<__timepunct
<C
> >(const locale
&);
233 use_facet
<time_put
<C
> >(const locale
&);
237 use_facet
<time_get
<C
> >(const locale
&);
241 use_facet
<messages
<C
> >(const locale
&);
246 has_facet
<ctype
<C
> >(const locale
&);
250 has_facet
<codecvt
<C
, char, mbstate_t> >(const locale
&);
254 has_facet
<collate
<C
> >(const locale
&);
258 has_facet
<numpunct
<C
> >(const locale
&);
262 has_facet
<num_put
<C
> >(const locale
&);
266 has_facet
<num_get
<C
> >(const locale
&);
270 has_facet
<moneypunct
<C
> >(const locale
&);
274 has_facet
<money_put
<C
> >(const locale
&);
278 has_facet
<money_get
<C
> >(const locale
&);
282 has_facet
<__timepunct
<C
> >(const locale
&);
286 has_facet
<time_put
<C
> >(const locale
&);
290 has_facet
<time_get
<C
> >(const locale
&);
294 has_facet
<messages
<C
> >(const locale
&);
300 __add_grouping
<C
>(C
*, C
, char const*, size_t,
303 template class __pad
<C
, char_traits
<C
> >;
307 __int_to_char(C
*, unsigned long, const C
*,
308 ios_base::fmtflags
, bool);
310 #ifdef _GLIBCXX_USE_LONG_LONG
313 __int_to_char(C
*, unsigned long long, const C
*,
314 ios_base::fmtflags
, bool);