diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2008-09-10 21:34:38 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2008-09-10 21:34:38 +0000 |
commit | 08376e28d4db9f3c3fdf33de39c77ea881e47c73 (patch) | |
tree | e4a9d3d087baab3772c5dfd1733e16f2bb0eee79 | |
parent | 5bcb0cc36879d3f65d2d78a6ff0c6383fba47dd5 (diff) | |
download | gcc-08376e28d4db9f3c3fdf33de39c77ea881e47c73.zip gcc-08376e28d4db9f3c3fdf33de39c77ea881e47c73.tar.gz gcc-08376e28d4db9f3c3fdf33de39c77ea881e47c73.tar.bz2 |
ctype.cc (use_facet<ctype<char> >, [...]): Remove specializations.
2008-09-10 Paolo Carlini <paolo.carlini@oracle.com>
* src/ctype.cc (use_facet<ctype<char> >, use_facet<ctype<wchar_t>):
Remove specializations.
* src/locale-inst.cc (use_facet<ctype<C> >): Instantiate.
* include/bits/locale_facets.tcc (use_facet<ctype<char> >,
use_facet<ctype<wchar_t>): Declare as extern template.
* include/bits/locale_facets.h (use_facet<ctype<char> >,
use_facet<ctype<wchar_t>): Do not declare as specializations.
From-SVN: r140251
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.tcc | 10 | ||||
-rw-r--r-- | libstdc++-v3/src/ctype.cc | 20 | ||||
-rw-r--r-- | libstdc++-v3/src/locale-inst.cc | 7 |
5 files changed, 24 insertions, 31 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 03371b4..8b7cd46 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,15 @@ 2008-09-10 Paolo Carlini <paolo.carlini@oracle.com> + * src/ctype.cc (use_facet<ctype<char> >, use_facet<ctype<wchar_t>): + Remove specializations. + * src/locale-inst.cc (use_facet<ctype<C> >): Instantiate. + * include/bits/locale_facets.tcc (use_facet<ctype<char> >, + use_facet<ctype<wchar_t>): Declare as extern template. + * include/bits/locale_facets.h (use_facet<ctype<char> >, + use_facet<ctype<wchar_t>): Do not declare as specializations. + +2008-09-10 Paolo Carlini <paolo.carlini@oracle.com> + * config/locale/darwin/ctype_members.cc (ctype<char>::_M_narrow_init, ctype<char>::_M_widen_init): Don't define here. * config/locale/gnu/ctype_members.cc: Likewise. diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h index 340d21d..2581660 100644 --- a/libstdc++-v3/include/bits/locale_facets.h +++ b/libstdc++-v3/include/bits/locale_facets.h @@ -1165,10 +1165,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) void _M_widen_init() const; }; - template<> - const ctype<char>& - use_facet<ctype<char> >(const locale& __loc); - #ifdef _GLIBCXX_USE_WCHAR_T // 22.2.1.3 ctype<wchar_t> specialization /** @@ -1470,10 +1466,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) void _M_initialize_ctype(); }; - - template<> - const ctype<wchar_t>& - use_facet<ctype<wchar_t> >(const locale& __loc); #endif //_GLIBCXX_USE_WCHAR_T /// class ctype_byname [22.2.1.2]. diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 744e373..4961025 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -1,7 +1,7 @@ // Locale support -*- C++ -*- // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, -// 2006, 2007 +// 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -1284,6 +1284,10 @@ _GLIBCXX_END_LDBL_NAMESPACE extern template class ctype_byname<char>; extern template + const ctype<char>& + use_facet<ctype<char> >(const locale&); + + extern template const numpunct<char>& use_facet<numpunct<char> >(const locale&); @@ -1319,6 +1323,10 @@ _GLIBCXX_END_LDBL_NAMESPACE extern template class ctype_byname<wchar_t>; extern template + const ctype<wchar_t>& + use_facet<ctype<wchar_t> >(const locale&); + + extern template const numpunct<wchar_t>& use_facet<numpunct<wchar_t> >(const locale&); diff --git a/libstdc++-v3/src/ctype.cc b/libstdc++-v3/src/ctype.cc index cb9c853..e979150 100644 --- a/libstdc++-v3/src/ctype.cc +++ b/libstdc++-v3/src/ctype.cc @@ -53,26 +53,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) locale::id ctype<wchar_t>::id; #endif - template<> - const ctype<char>& - use_facet<ctype<char> >(const locale& __loc) - { - size_t __i = ctype<char>::id._M_id(); - const locale::_Impl* __tmp = __loc._M_impl; - return static_cast<const ctype<char>&>(*(__tmp->_M_facets[__i])); - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - const ctype<wchar_t>& - use_facet<ctype<wchar_t> >(const locale& __loc) - { - size_t __i = ctype<wchar_t>::id._M_id(); - const locale::_Impl* __tmp = __loc._M_impl; - return static_cast<const ctype<wchar_t>&>(*(__tmp->_M_facets[__i])); - } -#endif - // XXX At some point, just rename this file to ctype_configure_char.cc // and compile it as a separate file instead of including it here. // Platform-specific initialization code for ctype tables. diff --git a/libstdc++-v3/src/locale-inst.cc b/libstdc++-v3/src/locale-inst.cc index 790e614..8d2ac77 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, 2003, 2004, 2005, 2006 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -192,7 +192,10 @@ _GLIBCXX_END_LDBL_NAMESPACE template class collate_byname<C>; // use_facet - // NB: use_facet<ctype> is specialized + template + const ctype<C>& + use_facet<ctype<C> >(const locale&); + template const codecvt<C, char, mbstate_t>& use_facet<codecvt<C, char, mbstate_t> >(const locale&); |