locale-inst.cc

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

Generated on Fri May 6 01:09:00 2005 for libstdc++-v3 Source by  doxygen 1.4.2