OSDN Git Service

2008-09-10 Paolo Carlini <paolo.carlini@oracle.com>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Sep 2008 21:34:38 +0000 (21:34 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Sep 2008 21:34:38 +0000 (21:34 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140251 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/locale_facets.h
libstdc++-v3/include/bits/locale_facets.tcc
libstdc++-v3/src/ctype.cc
libstdc++-v3/src/locale-inst.cc

index 03371b4..8b7cd46 100644 (file)
@@ -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.
index 340d21d..2581660 100644 (file)
@@ -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].
index 744e373..4961025 100644 (file)
@@ -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&);
 
index cb9c853..e979150 100644 (file)
@@ -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.
index 790e614..8d2ac77 100644 (file)
@@ -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&);