libstdc++
|
00001 // <locale> Forward declarations -*- C++ -*- 00002 00003 // Copyright (C) 1997-2015 Free Software Foundation, Inc. 00004 // 00005 // This file is part of the GNU ISO C++ Library. This library is free 00006 // software; you can redistribute it and/or modify it under the 00007 // terms of the GNU General Public License as published by the 00008 // Free Software Foundation; either version 3, or (at your option) 00009 // any later version. 00010 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU General Public License for more details. 00015 00016 // Under Section 7 of GPL version 3, you are granted additional 00017 // permissions described in the GCC Runtime Library Exception, version 00018 // 3.1, as published by the Free Software Foundation. 00019 00020 // You should have received a copy of the GNU General Public License and 00021 // a copy of the GCC Runtime Library Exception along with this program; 00022 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 00023 // <http://www.gnu.org/licenses/>. 00024 00025 /** @file bits/localefwd.h 00026 * This is an internal header file, included by other library headers. 00027 * Do not attempt to use it directly. @headername{locale} 00028 */ 00029 00030 // 00031 // ISO C++ 14882: 22.1 Locales 00032 // 00033 00034 #ifndef _LOCALE_FWD_H 00035 #define _LOCALE_FWD_H 1 00036 00037 #pragma GCC system_header 00038 00039 #include <bits/c++config.h> 00040 #include <bits/c++locale.h> // Defines __c_locale, config-specific include 00041 #include <iosfwd> // For ostreambuf_iterator, istreambuf_iterator 00042 #include <cctype> 00043 00044 namespace std _GLIBCXX_VISIBILITY(default) 00045 { 00046 _GLIBCXX_BEGIN_NAMESPACE_VERSION 00047 00048 /** 00049 * @defgroup locales Locales 00050 * 00051 * Classes and functions for internationalization and localization. 00052 */ 00053 00054 // 22.1.1 Locale 00055 class locale; 00056 00057 template<typename _Facet> 00058 bool 00059 has_facet(const locale&) throw(); 00060 00061 template<typename _Facet> 00062 const _Facet& 00063 use_facet(const locale&); 00064 00065 // 22.1.3 Convenience interfaces 00066 template<typename _CharT> 00067 bool 00068 isspace(_CharT, const locale&); 00069 00070 template<typename _CharT> 00071 bool 00072 isprint(_CharT, const locale&); 00073 00074 template<typename _CharT> 00075 bool 00076 iscntrl(_CharT, const locale&); 00077 00078 template<typename _CharT> 00079 bool 00080 isupper(_CharT, const locale&); 00081 00082 template<typename _CharT> 00083 bool 00084 islower(_CharT, const locale&); 00085 00086 template<typename _CharT> 00087 bool 00088 isalpha(_CharT, const locale&); 00089 00090 template<typename _CharT> 00091 bool 00092 isdigit(_CharT, const locale&); 00093 00094 template<typename _CharT> 00095 bool 00096 ispunct(_CharT, const locale&); 00097 00098 template<typename _CharT> 00099 bool 00100 isxdigit(_CharT, const locale&); 00101 00102 template<typename _CharT> 00103 bool 00104 isalnum(_CharT, const locale&); 00105 00106 template<typename _CharT> 00107 bool 00108 isgraph(_CharT, const locale&); 00109 00110 #if __cplusplus >= 201103L 00111 template<typename _CharT> 00112 bool 00113 isblank(_CharT, const locale&); 00114 #endif 00115 00116 template<typename _CharT> 00117 _CharT 00118 toupper(_CharT, const locale&); 00119 00120 template<typename _CharT> 00121 _CharT 00122 tolower(_CharT, const locale&); 00123 00124 // 22.2.1 and 22.2.1.3 ctype 00125 class ctype_base; 00126 template<typename _CharT> 00127 class ctype; 00128 template<> class ctype<char>; 00129 #ifdef _GLIBCXX_USE_WCHAR_T 00130 template<> class ctype<wchar_t>; 00131 #endif 00132 template<typename _CharT> 00133 class ctype_byname; 00134 // NB: Specialized for char and wchar_t in locale_facets.h. 00135 00136 class codecvt_base; 00137 template<typename _InternT, typename _ExternT, typename _StateT> 00138 class codecvt; 00139 template<> class codecvt<char, char, mbstate_t>; 00140 #ifdef _GLIBCXX_USE_WCHAR_T 00141 template<> class codecvt<wchar_t, char, mbstate_t>; 00142 #endif 00143 template<typename _InternT, typename _ExternT, typename _StateT> 00144 class codecvt_byname; 00145 00146 // 22.2.2 and 22.2.3 numeric 00147 _GLIBCXX_BEGIN_NAMESPACE_LDBL 00148 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00149 class num_get; 00150 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00151 class num_put; 00152 _GLIBCXX_END_NAMESPACE_LDBL 00153 _GLIBCXX_BEGIN_NAMESPACE_CXX11 00154 template<typename _CharT> class numpunct; 00155 template<typename _CharT> class numpunct_byname; 00156 _GLIBCXX_END_NAMESPACE_CXX11 00157 00158 _GLIBCXX_BEGIN_NAMESPACE_CXX11 00159 // 22.2.4 collation 00160 template<typename _CharT> 00161 class collate; 00162 template<typename _CharT> 00163 class collate_byname; 00164 _GLIBCXX_END_NAMESPACE_CXX11 00165 00166 // 22.2.5 date and time 00167 class time_base; 00168 _GLIBCXX_BEGIN_NAMESPACE_CXX11 00169 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00170 class time_get; 00171 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00172 class time_get_byname; 00173 _GLIBCXX_END_NAMESPACE_CXX11 00174 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00175 class time_put; 00176 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00177 class time_put_byname; 00178 00179 // 22.2.6 money 00180 class money_base; 00181 _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 00182 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00183 class money_get; 00184 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00185 class money_put; 00186 _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 00187 _GLIBCXX_BEGIN_NAMESPACE_CXX11 00188 template<typename _CharT, bool _Intl = false> 00189 class moneypunct; 00190 template<typename _CharT, bool _Intl = false> 00191 class moneypunct_byname; 00192 _GLIBCXX_END_NAMESPACE_CXX11 00193 00194 // 22.2.7 message retrieval 00195 class messages_base; 00196 _GLIBCXX_BEGIN_NAMESPACE_CXX11 00197 template<typename _CharT> 00198 class messages; 00199 template<typename _CharT> 00200 class messages_byname; 00201 _GLIBCXX_END_NAMESPACE_CXX11 00202 00203 _GLIBCXX_END_NAMESPACE_VERSION 00204 } // namespace std 00205 00206 #endif