libstdc++
localefwd.h
Go to the documentation of this file.
1 // <locale> Forward declarations -*- C++ -*-
2 
3 // Copyright (C) 1997-2022 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 #if __cplusplus >= 201103L
111  template<typename _CharT>
112  bool
113  isblank(_CharT, const locale&);
114 #endif
115 
116  template<typename _CharT>
117  _CharT
118  toupper(_CharT, const locale&);
119 
120  template<typename _CharT>
121  _CharT
122  tolower(_CharT, const locale&);
123 
124  // 22.2.1 and 22.2.1.3 ctype
125  struct ctype_base;
126  template<typename _CharT>
127  class ctype;
128  template<> class ctype<char>;
129 #ifdef _GLIBCXX_USE_WCHAR_T
130  template<> class ctype<wchar_t>;
131 #endif
132  template<typename _CharT>
133  class ctype_byname;
134  // NB: Specialized for char and wchar_t in locale_facets.h.
135 
136  class codecvt_base;
137  template<typename _InternT, typename _ExternT, typename _StateT>
138  class codecvt;
139  template<> class codecvt<char, char, mbstate_t>;
140 #ifdef _GLIBCXX_USE_WCHAR_T
141  template<> class codecvt<wchar_t, char, mbstate_t>;
142 #endif
143 #if __cplusplus >= 201103L
144  template<> class codecvt<char16_t, char, mbstate_t>;
145  template<> class codecvt<char32_t, char, mbstate_t>;
146 #ifdef _GLIBCXX_USE_CHAR8_T
147  template<> class codecvt<char16_t, char8_t, mbstate_t>;
148  template<> class codecvt<char32_t, char8_t, mbstate_t>;
149 #endif
150 #endif
151  template<typename _InternT, typename _ExternT, typename _StateT>
152  class codecvt_byname;
153 
154  // 22.2.2 and 22.2.3 numeric
155 _GLIBCXX_BEGIN_NAMESPACE_LDBL
156  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
157  class num_get;
158  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
159  class num_put;
160 _GLIBCXX_END_NAMESPACE_LDBL
161 _GLIBCXX_BEGIN_NAMESPACE_CXX11
162  template<typename _CharT> class numpunct;
163  template<typename _CharT> class numpunct_byname;
164 _GLIBCXX_END_NAMESPACE_CXX11
165 
166 _GLIBCXX_BEGIN_NAMESPACE_CXX11
167  // 22.2.4 collation
168  template<typename _CharT>
169  class collate;
170  template<typename _CharT>
171  class collate_byname;
172 _GLIBCXX_END_NAMESPACE_CXX11
173 
174  // 22.2.5 date and time
175  class time_base;
176 _GLIBCXX_BEGIN_NAMESPACE_CXX11
177  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
178  class time_get;
179  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
180  class time_get_byname;
181 _GLIBCXX_END_NAMESPACE_CXX11
182  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
183  class time_put;
184  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
185  class time_put_byname;
186 
187  // 22.2.6 money
188  class money_base;
189 _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11
190  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
191  class money_get;
192  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
193  class money_put;
194 _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
195 _GLIBCXX_BEGIN_NAMESPACE_CXX11
196  template<typename _CharT, bool _Intl = false>
197  class moneypunct;
198  template<typename _CharT, bool _Intl = false>
199  class moneypunct_byname;
200 _GLIBCXX_END_NAMESPACE_CXX11
201 
202  // 22.2.7 message retrieval
203  struct messages_base;
204 _GLIBCXX_BEGIN_NAMESPACE_CXX11
205  template<typename _CharT>
206  class messages;
207  template<typename _CharT>
208  class messages_byname;
209 _GLIBCXX_END_NAMESPACE_CXX11
210 
211 _GLIBCXX_END_NAMESPACE_VERSION
212 } // namespace std
213 
214 #endif
bool has_facet(const locale &__loc)
Test for the presence of a facet.
const _Facet & use_facet(const locale &__loc)
Return a facet.
ISO C++ entities toplevel namespace is std.
bool isgraph(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::graph, __c).
bool isspace(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::space, __c).
bool isxdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::xdigit, __c).
bool islower(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::lower, __c).
bool isdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::digit, __c).
bool isblank(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::blank, __c).
_CharT toupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.toupper(__c).
bool isupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::upper, __c).
bool isalnum(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alnum, __c).
bool ispunct(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::punct, __c).
_CharT tolower(_CharT __c, const locale &__loc)
Convenience interface to ctype.tolower(__c).
bool isprint(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::print, __c).
bool isalpha(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alpha, __c).
bool iscntrl(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::cntrl, __c).
constexpr syntax_option_type collate