Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6554 serge 1
// Locale support -*- C++ -*-
2
 
3
// Copyright (C) 1999-2015 Free Software Foundation, Inc.
4
//
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)
9
// any later version.
10
 
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.
15
 
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.
19
 
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
// .
24
 
25
//
26
// ISO C++ 14882: 22.1  Locales
27
//
28
 
29
#ifndef _GLIBCXX_USE_CXX11_ABI
30
// Instantiations in this file use the old COW std::string ABI unless included
31
// by another file which defines _GLIBCXX_USE_CXX11_ABI=1. Some instantiations
32
// are guarded by a check for !_GLIBCXX_USE_CXX11_ABI so that they are only
33
// instantiated once, because they are not tagged with abi_tag so should not
34
// be instantiated twice.
35
# define _GLIBCXX_USE_CXX11_ABI 0
36
#endif
37
 
38
#include 
39
 
40
// Instantiation configuration.
41
#ifndef C
42
# define C char
43
# define C_is_char
44
#endif
45
 
46
namespace std _GLIBCXX_VISIBILITY(default)
47
{
48
_GLIBCXX_BEGIN_NAMESPACE_VERSION
49
 
50
  // moneypunct, money_get, and money_put
51
#if ! _GLIBCXX_USE_CXX11_ABI
52
  template struct __moneypunct_cache;
53
  template struct __moneypunct_cache;
54
#endif
55
_GLIBCXX_BEGIN_NAMESPACE_CXX11
56
  template class moneypunct;
57
  template class moneypunct;
58
  template class moneypunct_byname;
59
  template class moneypunct_byname;
60
_GLIBCXX_END_NAMESPACE_CXX11
61
_GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11
62
  template class money_get >;
63
  template class money_put >;
64
  template
65
    istreambuf_iterator
66
    money_get >::
67
    _M_extract(istreambuf_iterator, istreambuf_iterator,
68
		     ios_base&, ios_base::iostate&, string&) const;
69
 
70
  template
71
    istreambuf_iterator
72
    money_get >::
73
    _M_extract(istreambuf_iterator, istreambuf_iterator,
74
		      ios_base&, ios_base::iostate&, string&) const;
75
 
76
  template
77
    ostreambuf_iterator
78
    money_put >::
79
    _M_insert(ostreambuf_iterator, ios_base&, C,
80
		    const string_type&) const;
81
 
82
  template
83
    ostreambuf_iterator
84
    money_put >::
85
    _M_insert(ostreambuf_iterator, ios_base&, C,
86
		     const string_type&) const;
87
_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
88
 
89
  // numpunct, numpunct_byname, num_get, and num_put
90
#if ! _GLIBCXX_USE_CXX11_ABI
91
  template struct __numpunct_cache;
92
#endif
93
_GLIBCXX_BEGIN_NAMESPACE_CXX11
94
  template class numpunct;
95
  template class numpunct_byname;
96
_GLIBCXX_END_NAMESPACE_CXX11
97
_GLIBCXX_BEGIN_NAMESPACE_LDBL
98
#if ! _GLIBCXX_USE_CXX11_ABI
99
  template class num_get >;
100
#endif
101
 
102
  template
103
    istreambuf_iterator
104
    num_get >::
105
    _M_extract_int(istreambuf_iterator, istreambuf_iterator,
106
		   ios_base&, ios_base::iostate&,
107
		   long&) const;
108
 
109
  template
110
    istreambuf_iterator
111
    num_get >::
112
    _M_extract_int(istreambuf_iterator, istreambuf_iterator,
113
		   ios_base&, ios_base::iostate&,
114
		   unsigned short&) const;
115
 
116
  template
117
    istreambuf_iterator
118
    num_get >::
119
    _M_extract_int(istreambuf_iterator, istreambuf_iterator,
120
		   ios_base&, ios_base::iostate&,
121
		   unsigned int&) const;
122
 
123
  template
124
    istreambuf_iterator
125
    num_get >::
126
    _M_extract_int(istreambuf_iterator, istreambuf_iterator,
127
		   ios_base&, ios_base::iostate&,
128
		   unsigned long&) const;
129
 
130
#ifdef _GLIBCXX_USE_LONG_LONG
131
  template
132
    istreambuf_iterator
133
    num_get >::
134
    _M_extract_int(istreambuf_iterator, istreambuf_iterator,
135
		   ios_base&, ios_base::iostate&,
136
		   long long&) const;
137
 
138
  template
139
    istreambuf_iterator
140
    num_get >::
141
    _M_extract_int(istreambuf_iterator, istreambuf_iterator,
142
		   ios_base&, ios_base::iostate&,
143
		   unsigned long long&) const;
144
#endif
145
 
146
#if ! _GLIBCXX_USE_CXX11_ABI
147
  template class num_put >;
148
 
149
  template
150
    ostreambuf_iterator
151
    num_put >::
152
    _M_insert_int(ostreambuf_iterator, ios_base&, C,
153
		  long) const;
154
 
155
  template
156
    ostreambuf_iterator
157
    num_put >::
158
    _M_insert_int(ostreambuf_iterator, ios_base&, C,
159
		  unsigned long) const;
160
 
161
#ifdef _GLIBCXX_USE_LONG_LONG
162
  template
163
    ostreambuf_iterator
164
    num_put >::
165
    _M_insert_int(ostreambuf_iterator, ios_base&, C,
166
		  long long) const;
167
 
168
  template
169
    ostreambuf_iterator
170
    num_put >::
171
    _M_insert_int(ostreambuf_iterator, ios_base&, C,
172
		  unsigned long long) const;
173
#endif
174
 
175
  template
176
    ostreambuf_iterator
177
    num_put >::
178
    _M_insert_float(ostreambuf_iterator, ios_base&, C, char,
179
		    double) const;
180
 
181
  template
182
    ostreambuf_iterator
183
    num_put >::
184
    _M_insert_float(ostreambuf_iterator, ios_base&, C, char,
185
		    long double) const;
186
#endif
187
_GLIBCXX_END_NAMESPACE_LDBL
188
 
189
  // time_get and time_put
190
#if ! _GLIBCXX_USE_CXX11_ABI
191
  template class __timepunct;
192
  template struct __timepunct_cache;
193
  template class time_put >;
194
  template class time_put_byname >;
195
#else
196
  // Instantiate constructor taking __cxx11::string
197
  template time_put_byname::time_put_byname(const string&, size_t);
198
#endif
199
_GLIBCXX_BEGIN_NAMESPACE_CXX11
200
  template class time_get >;
201
  template class time_get_byname >;
202
_GLIBCXX_END_NAMESPACE_CXX11
203
 
204
  // messages
205
_GLIBCXX_BEGIN_NAMESPACE_CXX11
206
  template class messages;
207
  template class messages_byname;
208
_GLIBCXX_END_NAMESPACE_CXX11
209
 
210
  // ctype
211
  ctype_byname::ctype_byname(const string& __s, size_t __refs)
212
  : ctype_byname(__s.c_str(), __refs) { }
213
 
214
#if ! _GLIBCXX_USE_CXX11_ABI
215
  inline template class __ctype_abstract_base;
216
  template class ctype_byname;
217
#endif
218
 
219
  // codecvt
220
#if ! _GLIBCXX_USE_CXX11_ABI
221
  inline template class __codecvt_abstract_base;
222
  template class codecvt_byname;
223
#else
224
  // Instantiate constructor taking __cxx11::string
225
  template codecvt_byname::codecvt_byname(const string&, size_t);
226
#endif
227
 
228
  // collate
229
_GLIBCXX_BEGIN_NAMESPACE_CXX11
230
  template class collate;
231
  template class collate_byname;
232
_GLIBCXX_END_NAMESPACE_CXX11
233
 
234
  // use_facet
235
#if ! _GLIBCXX_USE_CXX11_ABI
236
  template
237
    const ctype&
238
    use_facet >(const locale&);
239
 
240
  template
241
    const codecvt&
242
    use_facet >(const locale&);
243
#endif
244
 
245
  template
246
    const collate&
247
    use_facet >(const locale&);
248
 
249
  template
250
    const numpunct&
251
    use_facet >(const locale&);
252
 
253
#if ! _GLIBCXX_USE_CXX11_ABI
254
  template
255
    const num_put&
256
    use_facet >(const locale&);
257
 
258
  template
259
    const num_get&
260
    use_facet >(const locale&);
261
#endif
262
 
263
  template
264
    const moneypunct&
265
    use_facet >(const locale&);
266
 
267
  template
268
    const moneypunct&
269
    use_facet >(const locale&);
270
 
271
  template
272
    const money_put&
273
    use_facet >(const locale&);
274
 
275
  template
276
    const money_get&
277
    use_facet >(const locale&);
278
 
279
#if ! _GLIBCXX_USE_CXX11_ABI
280
  template
281
    const __timepunct&
282
    use_facet<__timepunct >(const locale&);
283
 
284
  template
285
    const time_put&
286
    use_facet >(const locale&);
287
#endif
288
 
289
  template
290
    const time_get&
291
    use_facet >(const locale&);
292
 
293
  template
294
    const messages&
295
    use_facet >(const locale&);
296
 
297
  // has_facet
298
#if ! _GLIBCXX_USE_CXX11_ABI
299
  template
300
    bool
301
    has_facet >(const locale&);
302
 
303
  template
304
    bool
305
    has_facet >(const locale&);
306
#endif
307
 
308
  template
309
    bool
310
    has_facet >(const locale&);
311
 
312
  template
313
    bool
314
    has_facet >(const locale&);
315
 
316
#if ! _GLIBCXX_USE_CXX11_ABI
317
  template
318
    bool
319
    has_facet >(const locale&);
320
 
321
  template
322
    bool
323
    has_facet >(const locale&);
324
#endif
325
 
326
  template
327
    bool
328
    has_facet >(const locale&);
329
 
330
  template
331
    bool
332
    has_facet >(const locale&);
333
 
334
  template
335
    bool
336
    has_facet >(const locale&);
337
 
338
#if ! _GLIBCXX_USE_CXX11_ABI
339
  template
340
    bool
341
    has_facet<__timepunct >(const locale&);
342
 
343
  template
344
    bool
345
    has_facet >(const locale&);
346
#endif
347
 
348
  template
349
    bool
350
    has_facet >(const locale&);
351
 
352
  template
353
    bool
354
    has_facet >(const locale&);
355
 
356
 
357
#if ! _GLIBCXX_USE_CXX11_ABI
358
  // locale functions.
359
  template
360
    C*
361
    __add_grouping(C*, C, char const*, size_t,
362
			 C const*, C const*);
363
 
364
  template class __pad >;
365
 
366
  template
367
    int
368
    __int_to_char(C*, unsigned long, const C*,
369
		  ios_base::fmtflags, bool);
370
 
371
#ifdef _GLIBCXX_USE_LONG_LONG
372
  template
373
    int
374
    __int_to_char(C*, unsigned long long, const C*,
375
		  ios_base::fmtflags, bool);
376
#endif
377
#endif
378
 
379
_GLIBCXX_END_NAMESPACE_VERSION
380
} // namespace
381
 
382
// XXX GLIBCXX_ABI Deprecated
383
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char \
384
      && _GLIBCXX_USE_CXX11_ABI == 0
385
 
386
#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
387
  extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
388
 
389
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
390
		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
391
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
392
		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
393
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
394
		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
395
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
396
		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
397
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
398
		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
399
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
400
		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
401
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_,
402
		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_);
403
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_,
404
		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_);
405
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_,
406
		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_);
407
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_,
408
		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_);
409
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_,
410
		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_);
411
_GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_,
412
		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_);
413
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
414
		     _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
415
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
416
		     _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
417
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs,
418
		     _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs);
419
_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs,
420
		     _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs);
421
 
422
#endif // _GLIBCXX_LONG_DOUBLE_COMPAT