Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. // <locale> Forward declarations -*- C++ -*-
  2.  
  3. // Copyright (C) 1997-2015 Free Software Foundation, Inc.
  4. //
  5. // This file is part of the GNU ISO C++ Library.  This library is free
  6. // software; you can redistribute it and/or modify it under the
  7. // terms of the GNU General Public License as published by the
  8. // Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10.  
  11. // This library is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. // GNU General Public License for more details.
  15.  
  16. // Under Section 7 of GPL version 3, you are granted additional
  17. // permissions described in the GCC Runtime Library Exception, version
  18. // 3.1, as published by the Free Software Foundation.
  19.  
  20. // You should have received a copy of the GNU General Public License and
  21. // a copy of the GCC Runtime Library Exception along with this program;
  22. // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23. // <http://www.gnu.org/licenses/>.
  24.  
  25. /** @file bits/localefwd.h
  26.  *  This is an internal header file, included by other library headers.
  27.  *  Do not attempt to use it directly. @headername{locale}
  28.  */
  29.  
  30. //
  31. // ISO C++ 14882: 22.1  Locales
  32. //
  33.  
  34. #ifndef _LOCALE_FWD_H
  35. #define _LOCALE_FWD_H 1
  36.  
  37. #pragma GCC system_header
  38.  
  39. #include <bits/c++config.h>
  40. #include <bits/c++locale.h>  // Defines __c_locale, config-specific include
  41. #include <iosfwd>            // For ostreambuf_iterator, istreambuf_iterator
  42. #include <cctype>
  43.  
  44. namespace std _GLIBCXX_VISIBILITY(default)
  45. {
  46. _GLIBCXX_BEGIN_NAMESPACE_VERSION
  47.  
  48.   /**
  49.    *  @defgroup locales Locales
  50.    *
  51.    *  Classes and functions for internationalization and localization.
  52.    */
  53.  
  54.   // 22.1.1 Locale
  55.   class locale;
  56.  
  57.   template<typename _Facet>
  58.     bool
  59.     has_facet(const locale&) throw();
  60.  
  61.   template<typename _Facet>
  62.     const _Facet&
  63.     use_facet(const locale&);
  64.  
  65.   // 22.1.3 Convenience interfaces
  66.   template<typename _CharT>
  67.     bool
  68.     isspace(_CharT, const locale&);
  69.  
  70.   template<typename _CharT>
  71.     bool
  72.     isprint(_CharT, const locale&);
  73.  
  74.   template<typename _CharT>
  75.     bool
  76.     iscntrl(_CharT, const locale&);
  77.  
  78.   template<typename _CharT>
  79.     bool
  80.     isupper(_CharT, const locale&);
  81.  
  82.   template<typename _CharT>
  83.     bool
  84.     islower(_CharT, const locale&);
  85.  
  86.   template<typename _CharT>
  87.     bool
  88.     isalpha(_CharT, const locale&);
  89.  
  90.   template<typename _CharT>
  91.     bool
  92.     isdigit(_CharT, const locale&);
  93.  
  94.   template<typename _CharT>
  95.     bool
  96.     ispunct(_CharT, const locale&);
  97.  
  98.   template<typename _CharT>
  99.     bool
  100.     isxdigit(_CharT, const locale&);
  101.  
  102.   template<typename _CharT>
  103.     bool
  104.     isalnum(_CharT, const locale&);
  105.  
  106.   template<typename _CharT>
  107.     bool
  108.     isgraph(_CharT, const locale&);
  109.  
  110. #if __cplusplus >= 201103L
  111.   template<typename _CharT>
  112.     bool
  113.     isblank(_CharT, const locale&);
  114. #endif
  115.  
  116.   template<typename _CharT>
  117.     _CharT
  118.     toupper(_CharT, const locale&);
  119.  
  120.   template<typename _CharT>
  121.     _CharT
  122.     tolower(_CharT, const locale&);
  123.  
  124.   // 22.2.1 and 22.2.1.3 ctype
  125.   class ctype_base;
  126.   template<typename _CharT>
  127.     class ctype;
  128.   template<> class ctype<char>;
  129. #ifdef _GLIBCXX_USE_WCHAR_T
  130.   template<> class ctype<wchar_t>;
  131. #endif
  132.   template<typename _CharT>
  133.     class ctype_byname;
  134.   // NB: Specialized for char and wchar_t in locale_facets.h.
  135.  
  136.   class codecvt_base;
  137.   template<typename _InternT, typename _ExternT, typename _StateT>
  138.     class codecvt;
  139.   template<> class codecvt<char, char, mbstate_t>;
  140. #ifdef _GLIBCXX_USE_WCHAR_T
  141.   template<> class codecvt<wchar_t, char, mbstate_t>;
  142. #endif
  143.   template<typename _InternT, typename _ExternT, typename _StateT>
  144.     class codecvt_byname;
  145.  
  146.   // 22.2.2 and 22.2.3 numeric
  147. _GLIBCXX_BEGIN_NAMESPACE_LDBL
  148.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  149.     class num_get;
  150.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  151.     class num_put;
  152. _GLIBCXX_END_NAMESPACE_LDBL
  153. _GLIBCXX_BEGIN_NAMESPACE_CXX11
  154.   template<typename _CharT> class numpunct;
  155.   template<typename _CharT> class numpunct_byname;
  156. _GLIBCXX_END_NAMESPACE_CXX11
  157.  
  158. _GLIBCXX_BEGIN_NAMESPACE_CXX11
  159.   // 22.2.4 collation
  160.   template<typename _CharT>
  161.     class collate;
  162.   template<typename _CharT>
  163.     class collate_byname;
  164. _GLIBCXX_END_NAMESPACE_CXX11
  165.  
  166.   // 22.2.5 date and time
  167.   class time_base;
  168. _GLIBCXX_BEGIN_NAMESPACE_CXX11
  169.   template<typename _CharT, typename _InIter =  istreambuf_iterator<_CharT> >
  170.     class time_get;
  171.   template<typename _CharT, typename _InIter =  istreambuf_iterator<_CharT> >
  172.     class time_get_byname;
  173. _GLIBCXX_END_NAMESPACE_CXX11
  174.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  175.     class time_put;
  176.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  177.     class time_put_byname;
  178.  
  179.   // 22.2.6 money
  180.   class money_base;
  181. _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11
  182.   template<typename _CharT, typename _InIter =  istreambuf_iterator<_CharT> >
  183.     class money_get;
  184.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  185.     class money_put;
  186. _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
  187. _GLIBCXX_BEGIN_NAMESPACE_CXX11
  188.   template<typename _CharT, bool _Intl = false>
  189.     class moneypunct;
  190.   template<typename _CharT, bool _Intl = false>
  191.     class moneypunct_byname;
  192. _GLIBCXX_END_NAMESPACE_CXX11
  193.  
  194.   // 22.2.7 message retrieval
  195.   class messages_base;
  196. _GLIBCXX_BEGIN_NAMESPACE_CXX11
  197.   template<typename _CharT>
  198.     class messages;
  199.   template<typename _CharT>
  200.     class messages_byname;
  201. _GLIBCXX_END_NAMESPACE_CXX11
  202.  
  203. _GLIBCXX_END_NAMESPACE_VERSION
  204. } // namespace std
  205.  
  206. #endif
  207.