libstdc++
|
00001 // <locale> Forward declarations -*- C++ -*- 00002 00003 // Copyright (C) 1997-2013 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 template<typename _CharT> 00111 _CharT 00112 toupper(_CharT, const locale&); 00113 00114 template<typename _CharT> 00115 _CharT 00116 tolower(_CharT, const locale&); 00117 00118 // 22.2.1 and 22.2.1.3 ctype 00119 class ctype_base; 00120 template<typename _CharT> 00121 class ctype; 00122 template<> class ctype<char>; 00123 #ifdef _GLIBCXX_USE_WCHAR_T 00124 template<> class ctype<wchar_t>; 00125 #endif 00126 template<typename _CharT> 00127 class ctype_byname; 00128 // NB: Specialized for char and wchar_t in locale_facets.h. 00129 00130 class codecvt_base; 00131 template<typename _InternT, typename _ExternT, typename _StateT> 00132 class codecvt; 00133 template<> class codecvt<char, char, mbstate_t>; 00134 #ifdef _GLIBCXX_USE_WCHAR_T 00135 template<> class codecvt<wchar_t, char, mbstate_t>; 00136 #endif 00137 template<typename _InternT, typename _ExternT, typename _StateT> 00138 class codecvt_byname; 00139 00140 // 22.2.2 and 22.2.3 numeric 00141 _GLIBCXX_BEGIN_NAMESPACE_LDBL 00142 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00143 class num_get; 00144 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00145 class num_put; 00146 _GLIBCXX_END_NAMESPACE_LDBL 00147 template<typename _CharT> class numpunct; 00148 template<typename _CharT> class numpunct_byname; 00149 00150 // 22.2.4 collation 00151 template<typename _CharT> 00152 class collate; 00153 template<typename _CharT> class 00154 collate_byname; 00155 00156 // 22.2.5 date and time 00157 class time_base; 00158 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00159 class time_get; 00160 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00161 class time_get_byname; 00162 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00163 class time_put; 00164 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00165 class time_put_byname; 00166 00167 // 22.2.6 money 00168 class money_base; 00169 _GLIBCXX_BEGIN_NAMESPACE_LDBL 00170 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00171 class money_get; 00172 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00173 class money_put; 00174 _GLIBCXX_END_NAMESPACE_LDBL 00175 template<typename _CharT, bool _Intl = false> 00176 class moneypunct; 00177 template<typename _CharT, bool _Intl = false> 00178 class moneypunct_byname; 00179 00180 // 22.2.7 message retrieval 00181 class messages_base; 00182 template<typename _CharT> 00183 class messages; 00184 template<typename _CharT> 00185 class messages_byname; 00186 00187 _GLIBCXX_END_NAMESPACE_VERSION 00188 } // namespace std 00189 00190 #endif