diff options
Diffstat (limited to 'libstdc++-v3/src/locale-inst.cc')
-rw-r--r-- | libstdc++-v3/src/locale-inst.cc | 130 |
1 files changed, 114 insertions, 16 deletions
diff --git a/libstdc++-v3/src/locale-inst.cc b/libstdc++-v3/src/locale-inst.cc index 8f2c8638177..8da410f7ff8 100644 --- a/libstdc++-v3/src/locale-inst.cc +++ b/libstdc++-v3/src/locale-inst.cc @@ -1,6 +1,6 @@ // Locale support -*- C++ -*- -// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -34,7 +34,6 @@ #include <cstdlib> #include <clocale> #include <cstring> -#include <cassert> #include <locale> namespace std @@ -46,6 +45,7 @@ namespace std template class moneypunct_byname<char, true>; template class money_get<char, istreambuf_iterator<char> >; template class money_put<char, ostreambuf_iterator<char> >; + template class __locale_cache<numpunct<char> >; #ifdef _GLIBCPP_USE_WCHAR_T template class moneypunct<wchar_t, false>; @@ -54,6 +54,7 @@ namespace std template class moneypunct_byname<wchar_t, true>; template class money_get<wchar_t, istreambuf_iterator<wchar_t> >; template class money_put<wchar_t, ostreambuf_iterator<wchar_t> >; + template class __locale_cache<numpunct<wchar_t> >; #endif // numpunct, numpunct_byname, num_get, and num_put @@ -64,26 +65,26 @@ namespace std template ostreambuf_iterator<char> num_put<char, ostreambuf_iterator<char> >:: - _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, long) const; template ostreambuf_iterator<char> num_put<char, ostreambuf_iterator<char> >:: - _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, unsigned long) const; #ifdef _GLIBCPP_USE_LONG_LONG template ostreambuf_iterator<char> num_put<char, ostreambuf_iterator<char> >:: - _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, long long) const; template ostreambuf_iterator<char> num_put<char, ostreambuf_iterator<char> >:: - _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, unsigned long long) const; #endif @@ -97,8 +98,8 @@ namespace std ostreambuf_iterator<char> num_put<char, ostreambuf_iterator<char> >:: _M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char, - long double) const; - + long double) const; + #ifdef _GLIBCPP_USE_WCHAR_T template class numpunct<wchar_t>; template class numpunct_byname<wchar_t>; @@ -108,27 +109,27 @@ namespace std template ostreambuf_iterator<wchar_t> num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: - _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, - char, long) const; + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, + long) const; template ostreambuf_iterator<wchar_t> num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: - _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, - char, unsigned long) const; + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, + unsigned long) const; #ifdef _GLIBCPP_USE_LONG_LONG template ostreambuf_iterator<wchar_t> num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: - _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, - char, long long) const; + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, + long long) const; template ostreambuf_iterator<wchar_t> num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: - _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, - char, unsigned long long) const; + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, + unsigned long long) const; #endif template @@ -144,6 +145,64 @@ namespace std long double) const; #endif +#if 1 + // XXX GLIBCXX_ABI Deprecated, compatibility only. + template + ostreambuf_iterator<char> + num_put<char, ostreambuf_iterator<char> >:: + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + long) const; + + template + ostreambuf_iterator<char> + num_put<char, ostreambuf_iterator<char> >:: + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + unsigned long) const; + +#ifdef _GLIBCPP_USE_LONG_LONG + template + ostreambuf_iterator<char> + num_put<char, ostreambuf_iterator<char> >:: + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + long long) const; + + template + ostreambuf_iterator<char> + num_put<char, ostreambuf_iterator<char> >:: + _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char, + unsigned long long) const; +#endif + +#ifdef _GLIBCPP_USE_WCHAR_T + template + ostreambuf_iterator<wchar_t> + num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, + char, long) const; + + template + ostreambuf_iterator<wchar_t> + num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, + char, unsigned long) const; + +#ifdef _GLIBCPP_USE_LONG_LONG + template + ostreambuf_iterator<wchar_t> + num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, + char, long long) const; + + template + ostreambuf_iterator<wchar_t> + num_put<wchar_t, ostreambuf_iterator<wchar_t> >:: + _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char, + char, unsigned long long) const; +#endif +#endif + +#endif + // time_get and time_put template class __timepunct<char>; template class time_put<char, ostreambuf_iterator<char> >; @@ -406,6 +465,17 @@ namespace std has_facet<messages<wchar_t> >(const locale&); #endif + // __use_cache + template + const __locale_cache<numpunct<char> >& + __use_cache<numpunct<char> >(const locale& __loc); + +#ifdef _GLIBCPP_USE_WCHAR_T + template + const __locale_cache<numpunct<wchar_t> >& + __use_cache<numpunct<wchar_t> >(const locale& __loc); +#endif + // locale template char* @@ -451,6 +521,7 @@ namespace std __convert_from_v(char*, const int, const char*, unsigned long, const __c_locale&, int); +#ifdef _GLIBCPP_USE_LONG_LONG template int __convert_from_v(char*, const int, const char*, long long, @@ -460,4 +531,31 @@ namespace std int __convert_from_v(char*, const int, const char*, unsigned long long, const __c_locale&, int); +#endif + + template + int + __int_to_char(char*, const int, unsigned long, const char*, + ios_base::fmtflags, bool); + +#ifdef _GLIBCPP_USE_WCHAR_T + template + int + __int_to_char(wchar_t*, const int, unsigned long, const wchar_t*, + ios_base::fmtflags, bool); +#endif + +#ifdef _GLIBCPP_USE_LONG_LONG + template + int + __int_to_char(char*, const int, unsigned long long, const char*, + ios_base::fmtflags, bool); + +#ifdef _GLIBCPP_USE_WCHAR_T + template + int + __int_to_char(wchar_t*, const int, unsigned long long, const wchar_t*, + ios_base::fmtflags, bool); +#endif +#endif } // namespace std |