Home | History | Annotate | Download | only in bits
      1 // <locale> Forward declarations -*- C++ -*-
      2 
      3 // Copyright (C) 1997-2014 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   template<typename _CharT>
    111     _CharT
    112     toupper(_CharT, const locale&);
    113 
    114   template<typename _CharT>
    115     _CharT
    116     tolower(_CharT, const locale&);
    117 
    118   // 22.2.1 and 22.2.1.3 ctype
    119   class ctype_base;
    120   template<typename _CharT>
    121     class ctype;
    122   template<> class ctype<char>;
    123 #ifdef _GLIBCXX_USE_WCHAR_T
    124   template<> class ctype<wchar_t>;
    125 #endif
    126   template<typename _CharT>
    127     class ctype_byname;
    128   // NB: Specialized for char and wchar_t in locale_facets.h.
    129 
    130   class codecvt_base;
    131   template<typename _InternT, typename _ExternT, typename _StateT>
    132     class codecvt;
    133   template<> class codecvt<char, char, mbstate_t>;
    134 #ifdef _GLIBCXX_USE_WCHAR_T
    135   template<> class codecvt<wchar_t, char, mbstate_t>;
    136 #endif
    137   template<typename _InternT, typename _ExternT, typename _StateT>
    138     class codecvt_byname;
    139 
    140   // 22.2.2 and 22.2.3 numeric
    141 _GLIBCXX_BEGIN_NAMESPACE_LDBL
    142   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
    143     class num_get;
    144   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
    145     class num_put;
    146 _GLIBCXX_END_NAMESPACE_LDBL
    147   template<typename _CharT> class numpunct;
    148   template<typename _CharT> class numpunct_byname;
    149 
    150   // 22.2.4 collation
    151   template<typename _CharT>
    152     class collate;
    153   template<typename _CharT> class
    154     collate_byname;
    155 
    156   // 22.2.5 date and time
    157   class time_base;
    158   template<typename _CharT, typename _InIter =  istreambuf_iterator<_CharT> >
    159     class time_get;
    160   template<typename _CharT, typename _InIter =  istreambuf_iterator<_CharT> >
    161     class time_get_byname;
    162   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
    163     class time_put;
    164   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
    165     class time_put_byname;
    166 
    167   // 22.2.6 money
    168   class money_base;
    169 _GLIBCXX_BEGIN_NAMESPACE_LDBL
    170   template<typename _CharT, typename _InIter =  istreambuf_iterator<_CharT> >
    171     class money_get;
    172   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
    173     class money_put;
    174 _GLIBCXX_END_NAMESPACE_LDBL
    175   template<typename _CharT, bool _Intl = false>
    176     class moneypunct;
    177   template<typename _CharT, bool _Intl = false>
    178     class moneypunct_byname;
    179 
    180   // 22.2.7 message retrieval
    181   class messages_base;
    182   template<typename _CharT>
    183     class messages;
    184   template<typename _CharT>
    185     class messages_byname;
    186 
    187 _GLIBCXX_END_NAMESPACE_VERSION
    188 } // namespace std
    189 
    190 #endif
    191