locale-inst.cc revision 132720
1193323Sed// Locale support -*- C++ -*- 2193323Sed 3193323Sed// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 4193323Sed// Free Software Foundation, Inc. 5193323Sed// 6193323Sed// This file is part of the GNU ISO C++ Library. This library is free 7193323Sed// software; you can redistribute it and/or modify it under the 8193323Sed// terms of the GNU General Public License as published by the 9193323Sed// Free Software Foundation; either version 2, or (at your option) 10193323Sed// any later version. 11193323Sed 12193323Sed// This library is distributed in the hope that it will be useful, 13193323Sed// but WITHOUT ANY WARRANTY; without even the implied warranty of 14193323Sed// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15193323Sed// GNU General Public License for more details. 16193323Sed 17193323Sed// You should have received a copy of the GNU General Public License along 18193323Sed// with this library; see the file COPYING. If not, write to the Free 19193323Sed// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 20193323Sed// USA. 21193323Sed 22193323Sed// As a special exception, you may use this file as part of a free software 23193323Sed// library without restriction. Specifically, if other files instantiate 24193323Sed// templates or use macros or inline functions from this file, or you compile 25193323Sed// this file and link it with other files to produce an executable, this 26193323Sed// file does not by itself cause the resulting executable to be covered by 27193323Sed// the GNU General Public License. This exception does not however 28193323Sed// invalidate any other reasons why the executable file might be covered by 29193323Sed// the GNU General Public License. 30193323Sed 31193323Sed// 32193323Sed// ISO C++ 14882: 22.1 Locales 33193323Sed// 34193323Sed 35193323Sed#include <locale> 36193323Sed 37193323Sed// Instantiation configuration. 38193323Sed#ifndef C 39193323Sed# define C char 40193323Sed#endif 41193323Sed 42193323Sednamespace std 43193323Sed{ 44193323Sed // moneypunct, money_get, and money_put 45193323Sed template class moneypunct<C, false>; 46193323Sed template class moneypunct<C, true>; 47193323Sed template struct __moneypunct_cache<C, false>; 48193323Sed template struct __moneypunct_cache<C, true>; 49193323Sed template class moneypunct_byname<C, false>; 50193323Sed template class moneypunct_byname<C, true>; 51193323Sed template class money_get<C, istreambuf_iterator<C> >; 52193323Sed template class money_put<C, ostreambuf_iterator<C> >; 53193323Sed template 54193323Sed istreambuf_iterator<C> 55193323Sed money_get<C, istreambuf_iterator<C> >:: 56193323Sed _M_extract<true>(istreambuf_iterator<C>, istreambuf_iterator<C>, 57193323Sed ios_base&, ios_base::iostate&, string&) const; 58193323Sed 59193323Sed template 60193323Sed istreambuf_iterator<C> 61193323Sed money_get<C, istreambuf_iterator<C> >:: 62193323Sed _M_extract<false>(istreambuf_iterator<C>, istreambuf_iterator<C>, 63193323Sed ios_base&, ios_base::iostate&, string&) const; 64193323Sed 65193323Sed template 66193323Sed ostreambuf_iterator<C> 67193323Sed money_put<C, ostreambuf_iterator<C> >:: 68193323Sed _M_insert<true>(ostreambuf_iterator<C>, ios_base&, C, 69193323Sed const string_type&) const; 70193323Sed 71193323Sed template 72193323Sed ostreambuf_iterator<C> 73193323Sed money_put<C, ostreambuf_iterator<C> >:: 74193323Sed _M_insert<false>(ostreambuf_iterator<C>, ios_base&, C, 75193323Sed const string_type&) const; 76193323Sed 77193323Sed // numpunct, numpunct_byname, num_get, and num_put 78193323Sed template class numpunct<C>; 79193323Sed template struct __numpunct_cache<C>; 80193323Sed template class numpunct_byname<C>; 81193323Sed template class num_get<C, istreambuf_iterator<C> >; 82193323Sed template class num_put<C, ostreambuf_iterator<C> >; 83193323Sed template 84193323Sed istreambuf_iterator<C> 85193323Sed num_get<C, istreambuf_iterator<C> >:: 86193323Sed _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 87193323Sed ios_base&, ios_base::iostate&, 88193323Sed long&) const; 89193323Sed 90193323Sed template 91193323Sed istreambuf_iterator<C> 92193323Sed num_get<C, istreambuf_iterator<C> >:: 93193323Sed _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 94193323Sed ios_base&, ios_base::iostate&, 95193323Sed unsigned short&) const; 96193323Sed 97193323Sed template 98193323Sed istreambuf_iterator<C> 99193323Sed num_get<C, istreambuf_iterator<C> >:: 100193323Sed _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 101193323Sed ios_base&, ios_base::iostate&, 102193323Sed unsigned int&) const; 103193323Sed 104193323Sed template 105193323Sed istreambuf_iterator<C> 106193323Sed num_get<C, istreambuf_iterator<C> >:: 107193323Sed _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 108193323Sed ios_base&, ios_base::iostate&, 109193323Sed unsigned long&) const; 110193323Sed 111193323Sed#ifdef _GLIBCXX_USE_LONG_LONG 112193323Sed template 113193323Sed istreambuf_iterator<C> 114193323Sed num_get<C, istreambuf_iterator<C> >:: 115193323Sed _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 116193323Sed ios_base&, ios_base::iostate&, 117193323Sed long long&) const; 118193323Sed 119193323Sed template 120193323Sed istreambuf_iterator<C> 121193323Sed num_get<C, istreambuf_iterator<C> >:: 122193323Sed _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 123193323Sed ios_base&, ios_base::iostate&, 124193323Sed unsigned long long&) const; 125193323Sed#endif 126193323Sed 127193323Sed template 128193323Sed ostreambuf_iterator<C> 129193323Sed num_put<C, ostreambuf_iterator<C> >:: 130193323Sed _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 131193323Sed long) const; 132193323Sed 133193323Sed template 134193323Sed ostreambuf_iterator<C> 135193323Sed num_put<C, ostreambuf_iterator<C> >:: 136193323Sed _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 137193323Sed unsigned long) const; 138193323Sed 139193323Sed#ifdef _GLIBCXX_USE_LONG_LONG 140193323Sed template 141193323Sed ostreambuf_iterator<C> 142193323Sed num_put<C, ostreambuf_iterator<C> >:: 143193323Sed _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 144193323Sed long long) const; 145193323Sed 146193323Sed template 147193323Sed ostreambuf_iterator<C> 148193323Sed num_put<C, ostreambuf_iterator<C> >:: 149193323Sed _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 150193323Sed unsigned long long) const; 151193323Sed#endif 152193323Sed 153193323Sed template 154193323Sed ostreambuf_iterator<C> 155193323Sed num_put<C, ostreambuf_iterator<C> >:: 156193323Sed _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char, 157193323Sed double) const; 158193323Sed 159193323Sed template 160193323Sed ostreambuf_iterator<C> 161193323Sed num_put<C, ostreambuf_iterator<C> >:: 162193323Sed _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char, 163193323Sed long double) const; 164193323Sed 165193323Sed // time_get and time_put 166193323Sed template class __timepunct<C>; 167193323Sed template struct __timepunct_cache<C>; 168193323Sed template class time_put<C, ostreambuf_iterator<C> >; 169193323Sed template class time_put_byname<C, ostreambuf_iterator<C> >; 170193323Sed template class time_get<C, istreambuf_iterator<C> >; 171193323Sed template class time_get_byname<C, istreambuf_iterator<C> >; 172193323Sed 173193323Sed // messages 174193323Sed template class messages<C>; 175193323Sed template class messages_byname<C>; 176193323Sed 177193323Sed // ctype 178193323Sed inline template class __ctype_abstract_base<C>; 179193323Sed template class ctype_byname<C>; 180193323Sed 181193323Sed // codecvt 182193323Sed inline template class __codecvt_abstract_base<C, char, mbstate_t>; 183193323Sed template class codecvt_byname<C, char, mbstate_t>; 184193323Sed 185193323Sed // collate 186193323Sed template class collate<C>; 187193323Sed template class collate_byname<C>; 188193323Sed 189193323Sed // use_facet 190193323Sed // NB: use_facet<ctype> is specialized 191193323Sed template 192193323Sed const codecvt<C, char, mbstate_t>& 193193323Sed use_facet<codecvt<C, char, mbstate_t> >(const locale&); 194193323Sed 195193323Sed template 196193323Sed const collate<C>& 197193323Sed use_facet<collate<C> >(const locale&); 198193323Sed 199193323Sed template 200193323Sed const numpunct<C>& 201193323Sed use_facet<numpunct<C> >(const locale&); 202193323Sed 203193323Sed template 204193323Sed const num_put<C>& 205193323Sed use_facet<num_put<C> >(const locale&); 206193323Sed 207193323Sed template 208193323Sed const num_get<C>& 209193323Sed use_facet<num_get<C> >(const locale&); 210193323Sed 211193323Sed template 212193323Sed const moneypunct<C, true>& 213193323Sed use_facet<moneypunct<C, true> >(const locale&); 214193323Sed 215193323Sed template 216193323Sed const moneypunct<C, false>& 217193323Sed use_facet<moneypunct<C, false> >(const locale&); 218193323Sed 219193323Sed template 220193323Sed const money_put<C>& 221193323Sed use_facet<money_put<C> >(const locale&); 222193323Sed 223193323Sed template 224193323Sed const money_get<C>& 225193323Sed use_facet<money_get<C> >(const locale&); 226193323Sed 227193323Sed template 228193323Sed const __timepunct<C>& 229193323Sed use_facet<__timepunct<C> >(const locale&); 230193323Sed 231193323Sed template 232193323Sed const time_put<C>& 233193323Sed use_facet<time_put<C> >(const locale&); 234193323Sed 235193323Sed template 236193323Sed const time_get<C>& 237193323Sed use_facet<time_get<C> >(const locale&); 238193323Sed 239193323Sed template 240193323Sed const messages<C>& 241193323Sed use_facet<messages<C> >(const locale&); 242193323Sed 243193323Sed // has_facet 244193323Sed template 245193323Sed bool 246193323Sed has_facet<ctype<C> >(const locale&); 247193323Sed 248193323Sed template 249193323Sed bool 250193323Sed has_facet<codecvt<C, char, mbstate_t> >(const locale&); 251 252 template 253 bool 254 has_facet<collate<C> >(const locale&); 255 256 template 257 bool 258 has_facet<numpunct<C> >(const locale&); 259 260 template 261 bool 262 has_facet<num_put<C> >(const locale&); 263 264 template 265 bool 266 has_facet<num_get<C> >(const locale&); 267 268 template 269 bool 270 has_facet<moneypunct<C> >(const locale&); 271 272 template 273 bool 274 has_facet<money_put<C> >(const locale&); 275 276 template 277 bool 278 has_facet<money_get<C> >(const locale&); 279 280 template 281 bool 282 has_facet<__timepunct<C> >(const locale&); 283 284 template 285 bool 286 has_facet<time_put<C> >(const locale&); 287 288 template 289 bool 290 has_facet<time_get<C> >(const locale&); 291 292 template 293 bool 294 has_facet<messages<C> >(const locale&); 295 296 297 // locale functions. 298 template 299 C* 300 __add_grouping<C>(C*, C, char const*, size_t, 301 C const*, C const*); 302 303 template class __pad<C, char_traits<C> >; 304 305 template 306 int 307 __int_to_char(C*, unsigned long, const C*, 308 ios_base::fmtflags, bool); 309 310#ifdef _GLIBCXX_USE_LONG_LONG 311 template 312 int 313 __int_to_char(C*, unsigned long long, const C*, 314 ios_base::fmtflags, bool); 315#endif 316} // namespace std 317