00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
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
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
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
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
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
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
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
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
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
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
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
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 }
00323