libstdc++
localefwd.h
Go to the documentation of this file.
1 // <locale> Forward declarations -*- C++ -*-
2 
3 // Copyright (C) 1997-2014 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 // <http://www.gnu.org/licenses/>.
24 
25 /** @file bits/localefwd.h
26  * This is an internal header file, included by other library headers.
27  * Do not attempt to use it directly. @headername{locale}
28  */
29 
30 //
31 // ISO C++ 14882: 22.1 Locales
32 //
33 
34 #ifndef _LOCALE_FWD_H
35 #define _LOCALE_FWD_H 1
36 
37 #pragma GCC system_header
38 
39 #include <bits/c++config.h>
40 #include <bits/c++locale.h> // Defines __c_locale, config-specific include
41 #include <iosfwd> // For ostreambuf_iterator, istreambuf_iterator
42 #include <cctype>
43 
44 namespace std _GLIBCXX_VISIBILITY(default)
45 {
46 _GLIBCXX_BEGIN_NAMESPACE_VERSION
47 
48  /**
49  * @defgroup locales Locales
50  *
51  * Classes and functions for internationalization and localization.
52  */
53 
54  // 22.1.1 Locale
55  class locale;
56 
57  template<typename _Facet>
58  bool
59  has_facet(const locale&) throw();
60 
61  template<typename _Facet>
62  const _Facet&
63  use_facet(const locale&);
64 
65  // 22.1.3 Convenience interfaces
66  template<typename _CharT>
67  bool
68  isspace(_CharT, const locale&);
69 
70  template<typename _CharT>
71  bool
72  isprint(_CharT, const locale&);
73 
74  template<typename _CharT>
75  bool
76  iscntrl(_CharT, const locale&);
77 
78  template<typename _CharT>
79  bool
80  isupper(_CharT, const locale&);
81 
82  template<typename _CharT>
83  bool
84  islower(_CharT, const locale&);
85 
86  template<typename _CharT>
87  bool
88  isalpha(_CharT, const locale&);
89 
90  template<typename _CharT>
91  bool
92  isdigit(_CharT, const locale&);
93 
94  template<typename _CharT>
95  bool
96  ispunct(_CharT, const locale&);
97 
98  template<typename _CharT>
99  bool
100  isxdigit(_CharT, const locale&);
101 
102  template<typename _CharT>
103  bool
104  isalnum(_CharT, const locale&);
105 
106  template<typename _CharT>
107  bool
108  isgraph(_CharT, const locale&);
109 
110  template<typename _CharT>
111  _CharT
112  toupper(_CharT, const locale&);
113 
114  template<typename _CharT>
115  _CharT
116  tolower(_CharT, const locale&);
117 
118  // 22.2.1 and 22.2.1.3 ctype
119  class ctype_base;
120  template<typename _CharT>
121  class ctype;
122  template<> class ctype<char>;
123 #ifdef _GLIBCXX_USE_WCHAR_T
124  template<> class ctype<wchar_t>;
125 #endif
126  template<typename _CharT>
127  class ctype_byname;
128  // NB: Specialized for char and wchar_t in locale_facets.h.
129 
130  class codecvt_base;
131  template<typename _InternT, typename _ExternT, typename _StateT>
132  class codecvt;
133  template<> class codecvt<char, char, mbstate_t>;
134 #ifdef _GLIBCXX_USE_WCHAR_T
135  template<> class codecvt<wchar_t, char, mbstate_t>;
136 #endif
137  template<typename _InternT, typename _ExternT, typename _StateT>
138  class codecvt_byname;
139 
140  // 22.2.2 and 22.2.3 numeric
141 _GLIBCXX_BEGIN_NAMESPACE_LDBL
142  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
143  class num_get;
144  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
145  class num_put;
146 _GLIBCXX_END_NAMESPACE_LDBL
147  template<typename _CharT> class numpunct;
148  template<typename _CharT> class numpunct_byname;
149 
150  // 22.2.4 collation
151  template<typename _CharT>
152  class collate;
153  template<typename _CharT> class
154  collate_byname;
155 
156  // 22.2.5 date and time
157  class time_base;
158  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
159  class time_get;
160  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
161  class time_get_byname;
162  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
163  class time_put;
164  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
165  class time_put_byname;
166 
167  // 22.2.6 money
168  class money_base;
169 _GLIBCXX_BEGIN_NAMESPACE_LDBL
170  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
171  class money_get;
172  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
173  class money_put;
174 _GLIBCXX_END_NAMESPACE_LDBL
175  template<typename _CharT, bool _Intl = false>
176  class moneypunct;
177  template<typename _CharT, bool _Intl = false>
178  class moneypunct_byname;
179 
180  // 22.2.7 message retrieval
181  class messages_base;
182  template<typename _CharT>
183  class messages;
184  template<typename _CharT>
185  class messages_byname;
186 
187 _GLIBCXX_END_NAMESPACE_VERSION
188 } // namespace std
189 
190 #endif
bool isdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::digit, __c).
_CharT tolower(_CharT __c, const locale &__loc)
Convenience interface to ctype.tolower(__c).
bool isspace(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::space, __c).
bool isgraph(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::graph, __c).
ISO C++ entities toplevel namespace is std.
bool isupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::upper, __c).
bool ispunct(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::punct, __c).
bool isalnum(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alnum, __c).
bool isxdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::xdigit, __c).
_CharT toupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.toupper(__c).
bool iscntrl(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::cntrl, __c).
bool isalpha(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alpha, __c).
bool islower(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::lower, __c).
bool isprint(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::print, __c).