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 #ifdef _GLIBCPP_USE_WCHAR_T
00175 template
00176 bool
00177 has_facet<numpunct<wchar_t> >(const locale &);
00178 #endif
00179
00180
00181
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
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 }
00304