locale-inst.cc revision 117397
197403Sobrien// Locale support -*- C++ -*- 297403Sobrien 3117397Skan// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 497403Sobrien// 597403Sobrien// This file is part of the GNU ISO C++ Library. This library is free 697403Sobrien// software; you can redistribute it and/or modify it under the 797403Sobrien// terms of the GNU General Public License as published by the 897403Sobrien// Free Software Foundation; either version 2, or (at your option) 997403Sobrien// any later version. 1097403Sobrien 1197403Sobrien// This library is distributed in the hope that it will be useful, 1297403Sobrien// but WITHOUT ANY WARRANTY; without even the implied warranty of 1397403Sobrien// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1497403Sobrien// GNU General Public License for more details. 1597403Sobrien 1697403Sobrien// You should have received a copy of the GNU General Public License along 1797403Sobrien// with this library; see the file COPYING. If not, write to the Free 1897403Sobrien// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 1997403Sobrien// USA. 2097403Sobrien 2197403Sobrien// As a special exception, you may use this file as part of a free software 2297403Sobrien// library without restriction. Specifically, if other files instantiate 2397403Sobrien// templates or use macros or inline functions from this file, or you compile 2497403Sobrien// this file and link it with other files to produce an executable, this 2597403Sobrien// file does not by itself cause the resulting executable to be covered by 2697403Sobrien// the GNU General Public License. This exception does not however 2797403Sobrien// invalidate any other reasons why the executable file might be covered by 2897403Sobrien// the GNU General Public License. 2997403Sobrien 3097403Sobrien// 3197403Sobrien// ISO C++ 14882: 22.1 Locales 3297403Sobrien// 3397403Sobrien 3497403Sobrien#include <cstdlib> 3597403Sobrien#include <clocale> 3697403Sobrien#include <cstring> 3797403Sobrien#include <locale> 3897403Sobrien 3997403Sobriennamespace std 4097403Sobrien{ 4197403Sobrien // moneypunct, money_get, and money_put 4297403Sobrien template class moneypunct<char, false>; 4397403Sobrien template class moneypunct<char, true>; 4497403Sobrien template class moneypunct_byname<char, false>; 4597403Sobrien template class moneypunct_byname<char, true>; 4697403Sobrien template class money_get<char, istreambuf_iterator<char> >; 4797403Sobrien template class money_put<char, ostreambuf_iterator<char> >; 48117397Skan template class __locale_cache<numpunct<char> >; 4997403Sobrien 5097403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 5197403Sobrien template class moneypunct<wchar_t, false>; 5297403Sobrien template class moneypunct<wchar_t, true>; 5397403Sobrien template class moneypunct_byname<wchar_t, false>; 5497403Sobrien template class moneypunct_byname<wchar_t, true>; 5597403Sobrien template class money_get<wchar_t, istreambuf_iterator<wchar_t> >; 5697403Sobrien template class money_put<wchar_t, ostreambuf_iterator<wchar_t> >; 57117397Skan template class __locale_cache<numpunct<wchar_t> >; 5897403Sobrien#endif 5997403Sobrien 6097403Sobrien // numpunct, numpunct_byname, num_get, and num_put 6197403Sobrien template class numpunct<char>; 6297403Sobrien template class numpunct_byname<char>; 6397403Sobrien template class num_get<char, istreambuf_iterator<char> >; 6497403Sobrien template class num_put<char, ostreambuf_iterator<char> >; 6597403Sobrien template 6697403Sobrien ostreambuf_iterator<char> 6797403Sobrien num_put<char, ostreambuf_iterator<char> >:: 68117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, 6997403Sobrien long) const; 7097403Sobrien 7197403Sobrien template 7297403Sobrien ostreambuf_iterator<char> 7397403Sobrien num_put<char, ostreambuf_iterator<char> >:: 74117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, 7597403Sobrien unsigned long) const; 7697403Sobrien 7797403Sobrien#ifdef _GLIBCPP_USE_LONG_LONG 7897403Sobrien template 7997403Sobrien ostreambuf_iterator<char> 8097403Sobrien num_put<char, ostreambuf_iterator<char> >:: 81117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, 8297403Sobrien long long) const; 8397403Sobrien 8497403Sobrien template 8597403Sobrien ostreambuf_iterator<char> 8697403Sobrien num_put<char, ostreambuf_iterator<char> >:: 87117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, 8897403Sobrien unsigned long long) const; 8997403Sobrien#endif 9097403Sobrien 9197403Sobrien template 9297403Sobrien ostreambuf_iterator<char> 9397403Sobrien num_put<char, ostreambuf_iterator<char> >:: 9497403Sobrien _M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char, 9597403Sobrien double) const; 9697403Sobrien 9797403Sobrien template 9897403Sobrien ostreambuf_iterator<char> 9997403Sobrien num_put<char, ostreambuf_iterator<char> >:: 10097403Sobrien _M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char, 101117397Skan long double) const; 102117397Skan 10397403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 10497403Sobrien template class numpunct<wchar_t>; 10597403Sobrien template class numpunct_byname<wchar_t>; 10697403Sobrien template class num_get<wchar_t, istreambuf_iterator<wchar_t> >; 10797403Sobrien template class num_put<wchar_t, ostreambuf_iterator<wchar_t> >; 10897403Sobrien 10997403Sobrien template 11097403Sobrien ostreambuf_iterator<wchar_t> 11197403Sobrien num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 112117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, 113117397Skan long) const; 11497403Sobrien 11597403Sobrien template 11697403Sobrien ostreambuf_iterator<wchar_t> 11797403Sobrien num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 118117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, 119117397Skan unsigned long) const; 12097403Sobrien 12197403Sobrien#ifdef _GLIBCPP_USE_LONG_LONG 12297403Sobrien template 12397403Sobrien ostreambuf_iterator<wchar_t> 12497403Sobrien num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 125117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, 126117397Skan long long) const; 12797403Sobrien 12897403Sobrien template 12997403Sobrien ostreambuf_iterator<wchar_t> 13097403Sobrien num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 131117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, 132117397Skan unsigned long long) const; 13397403Sobrien#endif 13497403Sobrien 13597403Sobrien template 13697403Sobrien ostreambuf_iterator<wchar_t> 13797403Sobrien num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 13897403Sobrien _M_convert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, 13997403Sobrien double) const; 14097403Sobrien 14197403Sobrien template 14297403Sobrien ostreambuf_iterator<wchar_t> 14397403Sobrien num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 14497403Sobrien _M_convert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, 14597403Sobrien long double) const; 14697403Sobrien#endif 14797403Sobrien 148117397Skan#if 1 149117397Skan // XXX GLIBCXX_ABI Deprecated, compatibility only. 150117397Skan template 151117397Skan ostreambuf_iterator<char> 152117397Skan num_put<char, ostreambuf_iterator<char> >:: 153117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, 154117397Skan long) const; 155117397Skan 156117397Skan template 157117397Skan ostreambuf_iterator<char> 158117397Skan num_put<char, ostreambuf_iterator<char> >:: 159117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, 160117397Skan unsigned long) const; 161117397Skan 162117397Skan#ifdef _GLIBCPP_USE_LONG_LONG 163117397Skan template 164117397Skan ostreambuf_iterator<char> 165117397Skan num_put<char, ostreambuf_iterator<char> >:: 166117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, 167117397Skan long long) const; 168117397Skan 169117397Skan template 170117397Skan ostreambuf_iterator<char> 171117397Skan num_put<char, ostreambuf_iterator<char> >:: 172117397Skan _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, 173117397Skan unsigned long long) const; 174117397Skan#endif 175117397Skan 176117397Skan#ifdef _GLIBCPP_USE_WCHAR_T 177117397Skan template 178117397Skan ostreambuf_iterator<wchar_t> 179117397Skan num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 180117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, 181117397Skan char, long) const; 182117397Skan 183117397Skan template 184117397Skan ostreambuf_iterator<wchar_t> 185117397Skan num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 186117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, 187117397Skan char, unsigned long) const; 188117397Skan 189117397Skan#ifdef _GLIBCPP_USE_LONG_LONG 190117397Skan template 191117397Skan ostreambuf_iterator<wchar_t> 192117397Skan num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 193117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, 194117397Skan char, long long) const; 195117397Skan 196117397Skan template 197117397Skan ostreambuf_iterator<wchar_t> 198117397Skan num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: 199117397Skan _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, 200117397Skan char, unsigned long long) const; 201117397Skan#endif 202117397Skan#endif 203117397Skan 204117397Skan#endif 205117397Skan 20697403Sobrien // time_get and time_put 20797403Sobrien template class __timepunct<char>; 20897403Sobrien template class time_put<char, ostreambuf_iterator<char> >; 20997403Sobrien template class time_put_byname<char, ostreambuf_iterator<char> >; 21097403Sobrien template class time_get<char, istreambuf_iterator<char> >; 21197403Sobrien template class time_get_byname<char, istreambuf_iterator<char> >; 21297403Sobrien 21397403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 21497403Sobrien template class __timepunct<wchar_t>; 21597403Sobrien template class time_put<wchar_t, ostreambuf_iterator<wchar_t> >; 21697403Sobrien template class time_put_byname<wchar_t, ostreambuf_iterator<wchar_t> >; 21797403Sobrien template class time_get<wchar_t, istreambuf_iterator<wchar_t> >; 21897403Sobrien template class time_get_byname<wchar_t, istreambuf_iterator<wchar_t> >; 21997403Sobrien#endif 22097403Sobrien 22197403Sobrien // messages 22297403Sobrien template class messages<char>; 22397403Sobrien template class messages_byname<char>; 22497403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 22597403Sobrien template class messages<wchar_t>; 22697403Sobrien template class messages_byname<wchar_t>; 22797403Sobrien#endif 22897403Sobrien 22997403Sobrien // ctype 23097403Sobrien inline template class __ctype_abstract_base<char>; 23197403Sobrien template class ctype_byname<char>; 23297403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 23397403Sobrien inline template class __ctype_abstract_base<wchar_t>; 23497403Sobrien template class ctype_byname<wchar_t>; 23597403Sobrien#endif 23697403Sobrien 23797403Sobrien // codecvt 23897403Sobrien inline template class __codecvt_abstract_base<char, char, mbstate_t>; 23997403Sobrien template class codecvt_byname<char, char, mbstate_t>; 24097403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 241102782Skan inline template class __codecvt_abstract_base<wchar_t, char, mbstate_t>; 24297403Sobrien template class codecvt_byname<wchar_t, char, mbstate_t>; 24397403Sobrien#endif 24497403Sobrien 24597403Sobrien // collate 24697403Sobrien template class collate<char>; 24797403Sobrien template class collate_byname<char>; 24897403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 24997403Sobrien template class collate<wchar_t>; 25097403Sobrien template class collate_byname<wchar_t>; 25197403Sobrien#endif 25297403Sobrien 25397403Sobrien // use_facet 25497403Sobrien // NB: use_facet<ctype> is specialized 25597403Sobrien template 25697403Sobrien const codecvt<char, char, mbstate_t>& 25797403Sobrien use_facet<codecvt<char, char, mbstate_t> >(const locale&); 25897403Sobrien 25997403Sobrien template 26097403Sobrien const collate<char>& 26197403Sobrien use_facet<collate<char> >(const locale&); 26297403Sobrien 26397403Sobrien template 26497403Sobrien const numpunct<char>& 26597403Sobrien use_facet<numpunct<char> >(const locale&); 26697403Sobrien 26797403Sobrien template 26897403Sobrien const num_put<char>& 26997403Sobrien use_facet<num_put<char> >(const locale&); 27097403Sobrien 27197403Sobrien template 27297403Sobrien const num_get<char>& 27397403Sobrien use_facet<num_get<char> >(const locale&); 27497403Sobrien 27597403Sobrien template 27697403Sobrien const moneypunct<char, true>& 27797403Sobrien use_facet<moneypunct<char, true> >(const locale&); 27897403Sobrien 27997403Sobrien template 28097403Sobrien const moneypunct<char, false>& 28197403Sobrien use_facet<moneypunct<char, false> >(const locale&); 28297403Sobrien 28397403Sobrien template 28497403Sobrien const money_put<char>& 28597403Sobrien use_facet<money_put<char> >(const locale&); 28697403Sobrien 28797403Sobrien template 28897403Sobrien const money_get<char>& 28997403Sobrien use_facet<money_get<char> >(const locale&); 29097403Sobrien 29197403Sobrien template 29297403Sobrien const __timepunct<char>& 29397403Sobrien use_facet<__timepunct<char> >(const locale&); 29497403Sobrien 29597403Sobrien template 29697403Sobrien const time_put<char>& 29797403Sobrien use_facet<time_put<char> >(const locale&); 29897403Sobrien 29997403Sobrien template 30097403Sobrien const time_get<char>& 30197403Sobrien use_facet<time_get<char> >(const locale&); 30297403Sobrien 30397403Sobrien template 30497403Sobrien const messages<char>& 30597403Sobrien use_facet<messages<char> >(const locale&); 30697403Sobrien 30797403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 30897403Sobrien template 30997403Sobrien const codecvt<wchar_t, char, mbstate_t>& 31097403Sobrien use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&); 31197403Sobrien 31297403Sobrien template 31397403Sobrien const collate<wchar_t>& 31497403Sobrien use_facet<collate<wchar_t> >(const locale&); 31597403Sobrien 31697403Sobrien template 31797403Sobrien const numpunct<wchar_t>& 31897403Sobrien use_facet<numpunct<wchar_t> >(const locale&); 31997403Sobrien 32097403Sobrien template 32197403Sobrien const num_put<wchar_t>& 32297403Sobrien use_facet<num_put<wchar_t> >(const locale&); 32397403Sobrien 32497403Sobrien template 32597403Sobrien const num_get<wchar_t>& 32697403Sobrien use_facet<num_get<wchar_t> >(const locale&); 32797403Sobrien 32897403Sobrien template 32997403Sobrien const moneypunct<wchar_t, true>& 33097403Sobrien use_facet<moneypunct<wchar_t, true> >(const locale&); 33197403Sobrien 33297403Sobrien template 33397403Sobrien const moneypunct<wchar_t, false>& 33497403Sobrien use_facet<moneypunct<wchar_t, false> >(const locale&); 33597403Sobrien 33697403Sobrien template 33797403Sobrien const money_put<wchar_t>& 33897403Sobrien use_facet<money_put<wchar_t> >(const locale&); 33997403Sobrien 34097403Sobrien template 34197403Sobrien const money_get<wchar_t>& 34297403Sobrien use_facet<money_get<wchar_t> >(const locale&); 34397403Sobrien 34497403Sobrien template 34597403Sobrien const __timepunct<wchar_t>& 34697403Sobrien use_facet<__timepunct<wchar_t> >(const locale&); 34797403Sobrien 34897403Sobrien template 34997403Sobrien const time_put<wchar_t>& 35097403Sobrien use_facet<time_put<wchar_t> >(const locale&); 35197403Sobrien 35297403Sobrien template 35397403Sobrien const time_get<wchar_t>& 35497403Sobrien use_facet<time_get<wchar_t> >(const locale&); 35597403Sobrien 35697403Sobrien template 35797403Sobrien const messages<wchar_t>& 35897403Sobrien use_facet<messages<wchar_t> >(const locale&); 35997403Sobrien#endif 36097403Sobrien 36197403Sobrien // has_facet 36297403Sobrien template 36397403Sobrien bool 36497403Sobrien has_facet<ctype<char> >(const locale&); 36597403Sobrien 36697403Sobrien template 36797403Sobrien bool 36897403Sobrien has_facet<codecvt<char, char, mbstate_t> >(const locale&); 36997403Sobrien 37097403Sobrien template 37197403Sobrien bool 37297403Sobrien has_facet<collate<char> >(const locale&); 37397403Sobrien 37497403Sobrien template 37597403Sobrien bool 37697403Sobrien has_facet<numpunct<char> >(const locale&); 37797403Sobrien 37897403Sobrien template 37997403Sobrien bool 38097403Sobrien has_facet<num_put<char> >(const locale&); 38197403Sobrien 38297403Sobrien template 38397403Sobrien bool 38497403Sobrien has_facet<num_get<char> >(const locale&); 38597403Sobrien 38697403Sobrien template 38797403Sobrien bool 38897403Sobrien has_facet<moneypunct<char> >(const locale&); 38997403Sobrien 39097403Sobrien template 39197403Sobrien bool 39297403Sobrien has_facet<money_put<char> >(const locale&); 39397403Sobrien 39497403Sobrien template 39597403Sobrien bool 39697403Sobrien has_facet<money_get<char> >(const locale&); 39797403Sobrien 39897403Sobrien template 39997403Sobrien bool 40097403Sobrien has_facet<__timepunct<char> >(const locale&); 40197403Sobrien 40297403Sobrien template 40397403Sobrien bool 40497403Sobrien has_facet<time_put<char> >(const locale&); 40597403Sobrien 40697403Sobrien template 40797403Sobrien bool 40897403Sobrien has_facet<time_get<char> >(const locale&); 40997403Sobrien 41097403Sobrien template 41197403Sobrien bool 41297403Sobrien has_facet<messages<char> >(const locale&); 41397403Sobrien 41497403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 41597403Sobrien template 41697403Sobrien bool 41797403Sobrien has_facet<ctype<wchar_t> >(const locale&); 41897403Sobrien 41997403Sobrien template 42097403Sobrien bool 42197403Sobrien has_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&); 42297403Sobrien 42397403Sobrien template 42497403Sobrien bool 42597403Sobrien has_facet<collate<wchar_t> >(const locale&); 42697403Sobrien 42797403Sobrien template 42897403Sobrien bool 42997403Sobrien has_facet<numpunct<wchar_t> >(const locale&); 43097403Sobrien 43197403Sobrien template 43297403Sobrien bool 43397403Sobrien has_facet<num_put<wchar_t> >(const locale&); 43497403Sobrien 43597403Sobrien template 43697403Sobrien bool 43797403Sobrien has_facet<num_get<wchar_t> >(const locale&); 43897403Sobrien 43997403Sobrien template 44097403Sobrien bool 44197403Sobrien has_facet<moneypunct<wchar_t> >(const locale&); 44297403Sobrien 44397403Sobrien template 44497403Sobrien bool 44597403Sobrien has_facet<money_put<wchar_t> >(const locale&); 44697403Sobrien 44797403Sobrien template 44897403Sobrien bool 44997403Sobrien has_facet<money_get<wchar_t> >(const locale&); 45097403Sobrien 45197403Sobrien template 45297403Sobrien bool 45397403Sobrien has_facet<__timepunct<wchar_t> >(const locale&); 45497403Sobrien 45597403Sobrien template 45697403Sobrien bool 45797403Sobrien has_facet<time_put<wchar_t> >(const locale&); 45897403Sobrien 45997403Sobrien template 46097403Sobrien bool 46197403Sobrien has_facet<time_get<wchar_t> >(const locale&); 46297403Sobrien 46397403Sobrien template 46497403Sobrien bool 46597403Sobrien has_facet<messages<wchar_t> >(const locale&); 46697403Sobrien#endif 46797403Sobrien 468117397Skan // __use_cache 469117397Skan template 470117397Skan const __locale_cache<numpunct<char> >& 471117397Skan __use_cache<numpunct<char> >(const locale& __loc); 472117397Skan 473117397Skan#ifdef _GLIBCPP_USE_WCHAR_T 474117397Skan template 475117397Skan const __locale_cache<numpunct<wchar_t> >& 476117397Skan __use_cache<numpunct<wchar_t> >(const locale& __loc); 477117397Skan#endif 478117397Skan 47997403Sobrien // locale 48097403Sobrien template 48197403Sobrien char* 48297403Sobrien __add_grouping<char>(char*, char, char const*, char const*, 48397403Sobrien char const*, char const*); 48497403Sobrien 48597403Sobrien template 48697403Sobrien bool 48797403Sobrien __verify_grouping<char>(const basic_string<char>&, basic_string<char>&); 48897403Sobrien 489102782Skan template class __pad<char, char_traits<char> >; 49097403Sobrien 49197403Sobrien#ifdef _GLIBCPP_USE_WCHAR_T 49297403Sobrien template 49397403Sobrien wchar_t* 49497403Sobrien __add_grouping<wchar_t>(wchar_t*, wchar_t, char const*, char const*, 49597403Sobrien wchar_t const*, wchar_t const*); 49697403Sobrien template 49797403Sobrien bool 49897403Sobrien __verify_grouping<wchar_t>(const basic_string<wchar_t>&, 49997403Sobrien basic_string<wchar_t>&); 50097403Sobrien 501102782Skan template class __pad<wchar_t, char_traits<wchar_t> >; 502102782Skan#endif 50397403Sobrien 50497403Sobrien template 50597403Sobrien int 506102782Skan __convert_from_v(char*, const int, const char*, double, 507102782Skan const __c_locale&, int); 50897403Sobrien 50997403Sobrien template 51097403Sobrien int 511102782Skan __convert_from_v(char*, const int, const char*, long double, 512102782Skan const __c_locale&, int); 51397403Sobrien 51497403Sobrien template 51597403Sobrien int 516102782Skan __convert_from_v(char*, const int, const char*, long, 517102782Skan const __c_locale&, int); 51897403Sobrien 51997403Sobrien template 52097403Sobrien int 52197403Sobrien __convert_from_v(char*, const int, const char*, unsigned long, 52297403Sobrien const __c_locale&, int); 52397403Sobrien 524117397Skan#ifdef _GLIBCPP_USE_LONG_LONG 52597403Sobrien template 52697403Sobrien int 527102782Skan __convert_from_v(char*, const int, const char*, long long, 528102782Skan const __c_locale&, int); 52997403Sobrien 53097403Sobrien template 53197403Sobrien int 53297403Sobrien __convert_from_v(char*, const int, const char*, unsigned long long, 53397403Sobrien const __c_locale&, int); 534117397Skan#endif 535117397Skan 536117397Skan template 537117397Skan int 538117397Skan __int_to_char(char*, const int, unsigned long, const char*, 539117397Skan ios_base::fmtflags, bool); 540117397Skan 541117397Skan#ifdef _GLIBCPP_USE_WCHAR_T 542117397Skan template 543117397Skan int 544117397Skan __int_to_char(wchar_t*, const int, unsigned long, const wchar_t*, 545117397Skan ios_base::fmtflags, bool); 546117397Skan#endif 547117397Skan 548117397Skan#ifdef _GLIBCPP_USE_LONG_LONG 549117397Skan template 550117397Skan int 551117397Skan __int_to_char(char*, const int, unsigned long long, const char*, 552117397Skan ios_base::fmtflags, bool); 553117397Skan 554117397Skan#ifdef _GLIBCPP_USE_WCHAR_T 555117397Skan template 556117397Skan int 557117397Skan __int_to_char(wchar_t*, const int, unsigned long long, const wchar_t*, 558117397Skan ios_base::fmtflags, bool); 559117397Skan#endif 560117397Skan#endif 56197403Sobrien} // namespace std 562