libstdc++
|
00001 // Locale support -*- C++ -*- 00002 00003 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 00004 // 2006, 2007, 2009 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 localefwd.h 00028 * This is an internal header file, included by other library headers. 00029 * You should not attempt to use it directly. 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 _GLIBCXX_BEGIN_NAMESPACE(std) 00047 00048 // 22.1.1 Locale 00049 class locale; 00050 00051 template<typename _Facet> 00052 bool 00053 has_facet(const locale&) throw(); 00054 00055 template<typename _Facet> 00056 const _Facet& 00057 use_facet(const locale&); 00058 00059 // 22.1.3 Convenience interfaces 00060 template<typename _CharT> 00061 bool 00062 isspace(_CharT, const locale&); 00063 00064 template<typename _CharT> 00065 bool 00066 isprint(_CharT, const locale&); 00067 00068 template<typename _CharT> 00069 bool 00070 iscntrl(_CharT, const locale&); 00071 00072 template<typename _CharT> 00073 bool 00074 isupper(_CharT, const locale&); 00075 00076 template<typename _CharT> 00077 bool 00078 islower(_CharT, const locale&); 00079 00080 template<typename _CharT> 00081 bool 00082 isalpha(_CharT, const locale&); 00083 00084 template<typename _CharT> 00085 bool 00086 isdigit(_CharT, const locale&); 00087 00088 template<typename _CharT> 00089 bool 00090 ispunct(_CharT, const locale&); 00091 00092 template<typename _CharT> 00093 bool 00094 isxdigit(_CharT, const locale&); 00095 00096 template<typename _CharT> 00097 bool 00098 isalnum(_CharT, const locale&); 00099 00100 template<typename _CharT> 00101 bool 00102 isgraph(_CharT, const locale&); 00103 00104 template<typename _CharT> 00105 _CharT 00106 toupper(_CharT, const locale&); 00107 00108 template<typename _CharT> 00109 _CharT 00110 tolower(_CharT, const locale&); 00111 00112 // 22.2.1 and 22.2.1.3 ctype 00113 class ctype_base; 00114 template<typename _CharT> 00115 class ctype; 00116 template<> class ctype<char>; 00117 #ifdef _GLIBCXX_USE_WCHAR_T 00118 template<> class ctype<wchar_t>; 00119 #endif 00120 template<typename _CharT> 00121 class ctype_byname; 00122 // NB: Specialized for char and wchar_t in locale_facets.h. 00123 00124 class codecvt_base; 00125 template<typename _InternT, typename _ExternT, typename _StateT> 00126 class codecvt; 00127 template<> class codecvt<char, char, mbstate_t>; 00128 #ifdef _GLIBCXX_USE_WCHAR_T 00129 template<> class codecvt<wchar_t, char, mbstate_t>; 00130 #endif 00131 template<typename _InternT, typename _ExternT, typename _StateT> 00132 class codecvt_byname; 00133 00134 // 22.2.2 and 22.2.3 numeric 00135 _GLIBCXX_BEGIN_LDBL_NAMESPACE 00136 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00137 class num_get; 00138 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00139 class num_put; 00140 _GLIBCXX_END_LDBL_NAMESPACE 00141 template<typename _CharT> class numpunct; 00142 template<typename _CharT> class numpunct_byname; 00143 00144 // 22.2.4 collation 00145 template<typename _CharT> 00146 class collate; 00147 template<typename _CharT> class 00148 collate_byname; 00149 00150 // 22.2.5 date and time 00151 class time_base; 00152 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00153 class time_get; 00154 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00155 class time_get_byname; 00156 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00157 class time_put; 00158 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00159 class time_put_byname; 00160 00161 // 22.2.6 money 00162 class money_base; 00163 _GLIBCXX_BEGIN_LDBL_NAMESPACE 00164 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > 00165 class money_get; 00166 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > 00167 class money_put; 00168 _GLIBCXX_END_LDBL_NAMESPACE 00169 template<typename _CharT, bool _Intl = false> 00170 class moneypunct; 00171 template<typename _CharT, bool _Intl = false> 00172 class moneypunct_byname; 00173 00174 // 22.2.7 message retrieval 00175 class messages_base; 00176 template<typename _CharT> 00177 class messages; 00178 template<typename _CharT> 00179 class messages_byname; 00180 00181 _GLIBCXX_END_NAMESPACE 00182 00183 #endif