1 | // <locale> Forward declarations -*- C++ -*- |
---|---|

2 | |

3 | // Copyright (C) 1997-2017 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 | class 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 | template<typename _InternT, typename _ExternT, typename _StateT> |

144 | class codecvt_byname; |

145 | |

146 | // 22.2.2 and 22.2.3 numeric |

147 | _GLIBCXX_BEGIN_NAMESPACE_LDBL |

148 | template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > |

149 | class num_get; |

150 | template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > |

151 | class num_put; |

152 | _GLIBCXX_END_NAMESPACE_LDBL |

153 | _GLIBCXX_BEGIN_NAMESPACE_CXX11 |

154 | template<typename _CharT> class numpunct; |

155 | template<typename _CharT> class numpunct_byname; |

156 | _GLIBCXX_END_NAMESPACE_CXX11 |

157 | |

158 | _GLIBCXX_BEGIN_NAMESPACE_CXX11 |

159 | // 22.2.4 collation |

160 | template<typename _CharT> |

161 | class collate; |

162 | template<typename _CharT> |

163 | class collate_byname; |

164 | _GLIBCXX_END_NAMESPACE_CXX11 |

165 | |

166 | // 22.2.5 date and time |

167 | class time_base; |

168 | _GLIBCXX_BEGIN_NAMESPACE_CXX11 |

169 | template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > |

170 | class time_get; |

171 | template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > |

172 | class time_get_byname; |

173 | _GLIBCXX_END_NAMESPACE_CXX11 |

174 | template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > |

175 | class time_put; |

176 | template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > |

177 | class time_put_byname; |

178 | |

179 | // 22.2.6 money |

180 | class money_base; |

181 | _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 |

182 | template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > |

183 | class money_get; |

184 | template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > |

185 | class money_put; |

186 | _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 |

187 | _GLIBCXX_BEGIN_NAMESPACE_CXX11 |

188 | template<typename _CharT, bool _Intl = false> |

189 | class moneypunct; |

190 | template<typename _CharT, bool _Intl = false> |

191 | class moneypunct_byname; |

192 | _GLIBCXX_END_NAMESPACE_CXX11 |

193 | |

194 | // 22.2.7 message retrieval |

195 | class messages_base; |

196 | _GLIBCXX_BEGIN_NAMESPACE_CXX11 |

197 | template<typename _CharT> |

198 | class messages; |

199 | template<typename _CharT> |

200 | class messages_byname; |

201 | _GLIBCXX_END_NAMESPACE_CXX11 |

202 | |

203 | _GLIBCXX_END_NAMESPACE_VERSION |

204 | } // namespace std |

205 | |

206 | #endif |

207 |