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 #ifdef _GLIBCPP_USE_WCHAR_T
00175   template 
00176     bool
00177     has_facet<numpunct<wchar_t> >(const locale &);
00178 #endif
00179 
00180   //
00181   // iterator
00182   //
00183   typedef vector<locale::facet*> vec_pfacet;
00184   template 
00185     void 
00186     vec_pfacet::
00187     insert(vec_pfacet::iterator, vec_pfacet::size_type, 
00188        const vec_pfacet::value_type&);
00189   template 
00190     void 
00191     vec_pfacet::
00192     _M_fill_insert(vec_pfacet::iterator, vec_pfacet::size_type, 
00193            const vec_pfacet::value_type&);
00194 
00195 
00196   typedef istreambuf_iterator<char, char_traits<char> > istreambuf_iter;
00197   typedef ostreambuf_iterator<char, char_traits<char> > ostreambuf_iter;
00198 
00199 
00200   template 
00201     istreambuf_iter 
00202     __match_parallel<istreambuf_iter, char>
00203     (istreambuf_iter, istreambuf_iter, int, const string*, int*, int&, bool&);
00204 
00205 
00206 #ifdef _GLIBCPP_USE_WCHAR_T
00207   typedef istreambuf_iterator<wchar_t,char_traits<wchar_t> > wistreambuf_iter;
00208   typedef ostreambuf_iterator<wchar_t,char_traits<wchar_t> > wostreambuf_iter;
00209 
00210   template 
00211     wistreambuf_iter 
00212     __match_parallel<wistreambuf_iter, wchar_t>
00213    (wistreambuf_iter, wistreambuf_iter, int, const wstring*, int*, int&, bool&);
00214 #endif
00215 
00216 
00217   //
00218   // locale
00219   //
00220   template 
00221     bool
00222     locale::operator()(const string&, const string&) const;
00223 
00224   template
00225     ostreambuf_iter
00226     __pad<char, ostreambuf_iter, output_iterator_tag>
00227     (ostreambuf_iter, char, int, output_iterator_tag);
00228 
00229   template 
00230     ostreambuf_iter
00231     __pad_numeric<char, ostreambuf_iter>
00232     (ostreambuf_iter, ios_base::fmtflags, char, int, char const*, char const*, 
00233      char const*);
00234 
00235   template
00236     char*
00237     __group_digits<char>(char*, char, char const*, char const*, 
00238              char const*, char const*);
00239 
00240   template 
00241     ostreambuf_iter
00242     __output_integer<char, ostreambuf_iter, unsigned long>
00243     (ostreambuf_iter, ios_base &, char, bool, unsigned long);
00244 
00245 #ifdef _GLIBCPP_USE_LONG_LONG
00246   template
00247     ostreambuf_iter
00248     __output_integer<char, ostreambuf_iter, unsigned long long>
00249     (ostreambuf_iter, ios_base &, char, bool, unsigned long long);
00250 #endif
00251 
00252 #ifdef _GLIBCPP_USE_WCHAR_T
00253   template 
00254     bool
00255     locale::operator()(const wstring&, const wstring&) const;
00256 
00257   typedef ostreambuf_iterator<wchar_t> wostreambuf_iter;
00258 
00259   template
00260     wostreambuf_iter
00261     __pad<wchar_t, wostreambuf_iter, output_iterator_tag>
00262     (wostreambuf_iter, wchar_t, int, output_iterator_tag);
00263 
00264   template 
00265     wostreambuf_iter
00266     __pad_numeric<wchar_t, wostreambuf_iter>
00267     (wostreambuf_iter, ios_base::fmtflags, wchar_t __fill, int, wchar_t const*,
00268      wchar_t const*, wchar_t const*);
00269 
00270   template
00271     wchar_t*
00272     __group_digits<wchar_t>(wchar_t*, wchar_t, char const*, char const*, 
00273                 wchar_t const*, wchar_t const*);
00274 
00275   template 
00276     wostreambuf_iter
00277     __output_integer<wchar_t, wostreambuf_iter, unsigned long>
00278     (wostreambuf_iter, ios_base &, wchar_t, bool, unsigned long);
00279 
00280 #ifdef _GLIBCPP_USE_LONG_LONG
00281   template
00282     wostreambuf_iter
00283     __output_integer<wchar_t, wostreambuf_iter, unsigned long long>
00284     (wostreambuf_iter, ios_base &, wchar_t, bool, unsigned long long);
00285 #endif
00286 #endif // _GLIBCPP_USE_WCHAR_T
00287 
00288   template 
00289     locale::facet** 
00290     fill_n<locale::facet**, size_t, locale::facet*>
00291     (locale::facet**, size_t, locale::facet* const&);
00292 
00293   template
00294     __normal_iterator<locale::facet**, vector<locale::facet*> >
00295     fill_n(__normal_iterator<locale::facet**, vector<locale::facet*> >,
00296        size_t, locale::facet* const&);
00297 
00298   template
00299     void
00300     fill(__normal_iterator<locale::facet**, vector<locale::facet*> >,
00301          __normal_iterator<locale::facet**, vector<locale::facet*> >,
00302          locale::facet* const&);
00303 } // namespace std
00304 

Generated at Tue May 1 16:28:38 2001 for libstdc++-v3 by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001