// Locale support -*- C++ -*- // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 2, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License along // with this library; see the file COPYING. If not, write to the Free // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, // USA. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate // templates or use macros or inline functions from this file, or you compile // this file and link it with other files to produce an executable, this // file does not by itself cause the resulting executable to be covered by // the GNU General Public License. This exception does not however // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. // // ISO C++ 14882: 22.1 Locales // /** @file localefwd.h * This is an internal header file, included by other library headers. * You should not attempt to use it directly. */ #ifndef _LOCALE_FWD_H #define _LOCALE_FWD_H 1 #pragma GCC system_header #include #include // Defines __c_locale, config-specific includes #include // For ostreambuf_iterator, istreambuf_iterator #include namespace std { // 22.1.1 Locale class locale; // 22.1.3 Convenience interfaces template inline bool isspace(_CharT, const locale&); template inline bool isprint(_CharT, const locale&); template inline bool iscntrl(_CharT, const locale&); template inline bool isupper(_CharT, const locale&); template inline bool islower(_CharT, const locale&); template inline bool isalpha(_CharT, const locale&); template inline bool isdigit(_CharT, const locale&); template inline bool ispunct(_CharT, const locale&); template inline bool isxdigit(_CharT, const locale&); template inline bool isalnum(_CharT, const locale&); template inline bool isgraph(_CharT, const locale&); template inline _CharT toupper(_CharT, const locale&); template inline _CharT tolower(_CharT, const locale&); // 22.2.1 and 22.2.1.3 ctype class ctype_base; template class ctype; template<> class ctype; #ifdef _GLIBCXX_USE_WCHAR_T template<> class ctype; #endif template class ctype_byname; // NB: Specialized for char and wchar_t in locale_facets.h. class codecvt_base; class __enc_traits; template class codecvt; template<> class codecvt; #ifdef _GLIBCXX_USE_WCHAR_T template<> class codecvt; #endif template class codecvt_byname; // 22.2.2 and 22.2.3 numeric template > class num_get; template > class num_put; template class numpunct; template class numpunct_byname; // 22.2.4 collation template class collate; template class collate_byname; // 22.2.5 date and time class time_base; template > class time_get; template > class time_get_byname; template > class time_put; template > class time_put_byname; // 22.2.6 money class money_base; template > class money_get; template > class money_put; template class moneypunct; template class moneypunct_byname; // 22.2.7 message retrieval class messages_base; template class messages; template class messages_byname; template bool has_facet(const locale& __loc) throw(); template const _Facet& use_facet(const locale& __loc); template inline const _Facet& __check_facet(const _Facet* __f) { if (!__f) __throw_bad_cast(); return *__f; } } // namespace std #endif