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