Whole document tree
    

Whole document tree

locale-inst.cc Source File
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

locale-inst.cc

Go to the documentation of this file.
00001 // Locale support -*- C++ -*-
00002 
00003 // Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
00004 //
00005 // This file is part of the GNU ISO C++ Library.  This library is free
00006 // software; you can redistribute it and/or modify it under the
00007 // terms of the GNU General Public License as published by the
00008 // Free Software Foundation; either version 2, or (at your option)
00009 // any later version.
00010 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // GNU General Public License for more details.
00015 
00016 // You should have received a copy of the GNU General Public License along
00017 // with this library; see the file COPYING.  If not, write to the Free
00018 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
00019 // USA.
00020 
00021 // As a special exception, you may use this file as part of a free software
00022 // library without restriction.  Specifically, if other files instantiate
00023 // templates or use macros or inline functions from this file, or you compile
00024 // this file and link it with other files to produce an executable, this
00025 // file does not by itself cause the resulting executable to be covered by
00026 // the GNU General Public License.  This exception does not however
00027 // invalidate any other reasons why the executable file might be covered by
00028 // the GNU General Public License.
00029 
00030 //
00031 // ISO C++ 14882: 22.1  Locales
00032 //
00033 
00034 #include <bits/std_clocale.h>
00035 #include <bits/std_cstring.h>
00036 #include <bits/std_cassert.h>
00037 #include <bits/std_limits.h>
00038 #include <exception>
00039 #include <bits/std_stdexcept.h>
00040 #include <bits/std_locale.h>
00041 #include <bits/locale_facets.tcc>
00042 #include <bits/std_istream.h>
00043 #include <bits/std_ostream.h>
00044 
00045 namespace std
00046 {
00047   typedef ostreambuf_iterator<char, char_traits<char> > obuf_iterator;
00048   typedef istreambuf_iterator<char, char_traits<char> > ibuf_iterator;
00049   typedef ostreambuf_iterator<wchar_t, char_traits<wchar_t> > wobuf_iterator;
00050   typedef istreambuf_iterator<wchar_t, char_traits<wchar_t> > wibuf_iterator;
00051 
00052   // moneypunct, money_get, and money_put
00053   template class moneypunct<char, false>;
00054   template class moneypunct<char, true>;
00055   template class moneypunct_byname<char, false>;
00056   template class moneypunct_byname<char, true>;
00057   template class money_get<char, obuf_iterator>;
00058   template class money_put<char, obuf_iterator>;
00059   template class money_get<char, ibuf_iterator>;
00060   template class money_put<char, ibuf_iterator>;
00061   template class _Format_cache<char>;
00062 
00063 #ifdef _GLIBCPP_USE_WCHAR_T
00064   template class moneypunct<wchar_t, false>;
00065   template class moneypunct<wchar_t, true>;
00066   template class moneypunct_byname<wchar_t, false>;
00067   template class moneypunct_byname<wchar_t, true>;
00068   template class money_get<wchar_t, wobuf_iterator>;
00069   template class money_put<wchar_t, wobuf_iterator>;
00070   template class money_get<wchar_t, wibuf_iterator>;
00071   template class money_put<wchar_t, wibuf_iterator>;
00072   template class _Format_cache<wchar_t>;
00073 #endif
00074 
00075   // numpunct, numpunct_byname, num_get, and num_put
00076   template class numpunct<char>;
00077   template class numpunct_byname<char>;
00078   template class num_get<char, ibuf_iterator>;
00079   template class num_put<char, obuf_iterator>;
00080 #ifdef _GLIBCPP_USE_WCHAR_T
00081   template class numpunct<wchar_t>;
00082   template class numpunct_byname<wchar_t>;
00083   template class num_get<wchar_t, wibuf_iterator>;
00084   template class num_put<wchar_t, wobuf_iterator>;
00085 #endif
00086 
00087   // time_get and time_put
00088   template class time_put<char, obuf_iterator>;
00089   template class time_put_byname<char, obuf_iterator>;
00090   template class time_get<char, ibuf_iterator>;
00091   template class time_get_byname<char, ibuf_iterator>;
00092 
00093 #ifdef _GLIBCPP_USE_WCHAR_T
00094   template class time_put<wchar_t, wobuf_iterator>;
00095   template class time_put_byname<wchar_t, wobuf_iterator>;
00096   template class time_get<wchar_t, wibuf_iterator>;
00097   template class time_get_byname<wchar_t, wibuf_iterator>;
00098 #endif
00099 
00100   // messages
00101   template class messages<char>;
00102   template class messages_byname<char>;
00103 #ifdef _GLIBCPP_USE_WCHAR_T
00104   template class messages<wchar_t>;
00105   template class messages_byname<wchar_t>;
00106 #endif
00107   
00108   // ctype
00109   template class __ctype_abstract_base<char>;
00110   template class ctype_byname<char>;
00111 #ifdef _GLIBCPP_USE_WCHAR_T
00112   template class __ctype_abstract_base<wchar_t>;
00113   template class ctype_byname<wchar_t>;
00114 #endif
00115   
00116   // codecvt
00117   template class __codecvt_abstract_base<char, char, mbstate_t>;
00118   template class __codecvt_abstract_base<wchar_t, char, mbstate_t>;
00119   template class codecvt_byname<char, char, mbstate_t>;
00120 #ifdef _GLIBCPP_USE_WCHAR_T
00121   template class codecvt_byname<wchar_t, char, mbstate_t>;
00122 #endif
00123 
00124   // collate
00125   template class collate<char>;
00126   template class collate_byname<char>;
00127   template class _Weekdaynames<char, int>;
00128   template class _Monthnames<char, int>;
00129 #ifdef _GLIBCPP_USE_WCHAR_T
00130   template class collate<wchar_t>;
00131   template class collate_byname<wchar_t>;
00132   template class _Weekdaynames<wchar_t, int>;
00133   template class _Monthnames<wchar_t, int>;
00134 #endif
00135     
00136   // use_facet
00137   template 
00138     const num_put<char, obuf_iterator >& 
00139     use_facet<num_put<char, obuf_iterator> >(const locale&);
00140   template 
00141     const num_get<char, ibuf_iterator >& 
00142     use_facet<num_get<char, ibuf_iterator> >(const locale&);
00143   template
00144     const codecvt<char, char, mbstate_t>& 
00145     use_facet<codecvt<char, char, mbstate_t> >(const locale&);
00146   template
00147     const numpunct<char>& 
00148     use_facet<numpunct<char> >(const locale&);
00149   template
00150     const collate<char>& 
00151     use_facet<collate<char> >(const locale&);
00152 #ifdef _GLIBCPP_USE_WCHAR_T
00153   template 
00154     const num_put<wchar_t, wobuf_iterator>& 
00155     use_facet<num_put<wchar_t, wobuf_iterator> >(const locale&);
00156   template 
00157     const num_get<wchar_t, wibuf_iterator>& 
00158     use_facet<num_get<wchar_t, wibuf_iterator> >(const locale&);
00159   template
00160     const codecvt<wchar_t, char, mbstate_t>& 
00161     use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
00162   template
00163     const numpunct<wchar_t>& 
00164     use_facet<numpunct<wchar_t> >(const locale&);
00165   template
00166     const collate<wchar_t>& 
00167     use_facet<collate<wchar_t> >(const locale&);
00168 #endif
00169 
00170   // has_facet
00171   template 
00172     bool
00173     has_facet<numpunct<char> >(const locale&);
00174   template 
00175     bool
00176     has_facet<num_put<char> >(const locale&);
00177   template 
00178     bool
00179     has_facet<num_get<char> >(const locale&);
00180   template 
00181     bool
00182     has_facet<ctype<char> >(const locale&);
00183 
00184 #ifdef _GLIBCPP_USE_WCHAR_T
00185   template 
00186     bool
00187     has_facet<numpunct<wchar_t> >(const locale&);
00188   template 
00189     bool
00190     has_facet<num_put<wchar_t> >(const locale&);
00191   template 
00192     bool
00193     has_facet<num_get<wchar_t> >(const locale&);
00194   template 
00195     bool
00196     has_facet<ctype<wchar_t> >(const locale&);
00197 #endif
00198 
00199   //
00200   // iterator
00201   //
00202   typedef vector<locale::facet*> vec_pfacet;
00203   template 
00204     void 
00205     vec_pfacet::
00206     insert(vec_pfacet::iterator, vec_pfacet::size_type, 
00207        const vec_pfacet::value_type&);
00208   template 
00209     void 
00210     vec_pfacet::
00211     _M_fill_insert(vec_pfacet::iterator, vec_pfacet::size_type, 
00212            const vec_pfacet::value_type&);
00213 
00214 
00215   typedef istreambuf_iterator<char, char_traits<char> > istreambuf_iter;
00216   typedef ostreambuf_iterator<char, char_traits<char> > ostreambuf_iter;
00217 
00218 
00219   template 
00220     istreambuf_iter 
00221     __match_parallel<istreambuf_iter, char>
00222     (istreambuf_iter, istreambuf_iter, int, const string*, int*, int&, bool&);
00223 
00224 
00225 #ifdef _GLIBCPP_USE_WCHAR_T
00226   typedef istreambuf_iterator<wchar_t,char_traits<wchar_t> > wistreambuf_iter;
00227   typedef ostreambuf_iterator<wchar_t,char_traits<wchar_t> > wostreambuf_iter;
00228 
00229   template 
00230     wistreambuf_iter 
00231     __match_parallel<wistreambuf_iter, wchar_t>
00232    (wistreambuf_iter, wistreambuf_iter, int, const wstring*, int*, int&, bool&);
00233 #endif
00234 
00235 
00236   //
00237   // locale
00238   //
00239   template 
00240     bool
00241     locale::operator()(const string&, const string&) const;
00242 
00243   template
00244     ostreambuf_iter
00245     __pad<char, ostreambuf_iter, output_iterator_tag>
00246     (ostreambuf_iter, char, int, output_iterator_tag);
00247 
00248   template 
00249     ostreambuf_iter
00250     __pad_numeric<char, ostreambuf_iter>
00251     (ostreambuf_iter, ios_base::fmtflags, char, int, char const*, char const*, 
00252      char const*);
00253 
00254   template
00255     char*
00256     __group_digits<char>(char*, char, char const*, char const*, 
00257              char const*, char const*);
00258 
00259   template 
00260     ostreambuf_iter
00261     __output_integer<char, ostreambuf_iter, unsigned long>
00262     (ostreambuf_iter, ios_base &, char, bool, unsigned long);
00263 
00264 #ifdef _GLIBCPP_USE_LONG_LONG
00265   template
00266     ostreambuf_iter
00267     __output_integer<char, ostreambuf_iter, unsigned long long>
00268     (ostreambuf_iter, ios_base &, char, bool, unsigned long long);
00269 #endif
00270 
00271 #ifdef _GLIBCPP_USE_WCHAR_T
00272   template 
00273     bool
00274     locale::operator()(const wstring&, const wstring&) const;
00275 
00276   typedef ostreambuf_iterator<wchar_t> wostreambuf_iter;
00277 
00278   template
00279     wostreambuf_iter
00280     __pad<wchar_t, wostreambuf_iter, output_iterator_tag>
00281     (wostreambuf_iter, wchar_t, int, output_iterator_tag);
00282 
00283   template 
00284     wostreambuf_iter
00285     __pad_numeric<wchar_t, wostreambuf_iter>
00286     (wostreambuf_iter, ios_base::fmtflags, wchar_t __fill, int, wchar_t const*,
00287      wchar_t const*, wchar_t const*);
00288 
00289   template
00290     wchar_t*
00291     __group_digits<wchar_t>(wchar_t*, wchar_t, char const*, char const*, 
00292                 wchar_t const*, wchar_t const*);
00293 
00294   template 
00295     wostreambuf_iter
00296     __output_integer<wchar_t, wostreambuf_iter, unsigned long>
00297     (wostreambuf_iter, ios_base &, wchar_t, bool, unsigned long);
00298 
00299 #ifdef _GLIBCPP_USE_LONG_LONG
00300   template
00301     wostreambuf_iter
00302     __output_integer<wchar_t, wostreambuf_iter, unsigned long long>
00303     (wostreambuf_iter, ios_base &, wchar_t, bool, unsigned long long);
00304 #endif
00305 #endif // _GLIBCPP_USE_WCHAR_T
00306 
00307   template 
00308     locale::facet** 
00309     fill_n<locale::facet**, size_t, locale::facet*>
00310     (locale::facet**, size_t, locale::facet* const&);
00311 
00312   template
00313     __normal_iterator<locale::facet**, vector<locale::facet*> >
00314     fill_n(__normal_iterator<locale::facet**, vector<locale::facet*> >,
00315        size_t, locale::facet* const&);
00316 
00317   template
00318     void
00319     fill(__normal_iterator<locale::facet**, vector<locale::facet*> >,
00320          __normal_iterator<locale::facet**, vector<locale::facet*> >,
00321          locale::facet* const&);
00322 } // namespace std
00323 

Generated on Mon Apr 8 03:11:28 2002 for libstdc++-v3 Source by doxygen1.2.15