OSDN Git Service

2005-03-07 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Mar 2005 22:22:35 +0000 (22:22 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Mar 2005 22:22:35 +0000 (22:22 +0000)
* include/tr1/type_traits (is_polymorphic): Don't forget
the virtual destructor, thus avoiding warnings.
* testsuite/testsuite_tr1.h (class AbstractClass,
class PolymorphicClass): Likewise.

2005-03-07  Paolo Carlini  <pcarlini@suse.de>

* include/std/std_complex.h (pow(const complex<_Tp>&,
const complex<_Tp>&)): Dispatch to either __complex_pow(__x.__rep(),
__y.__rep()) or __complex_pow(__x, __y) depending on the macro
_GLIBCXX_USE_C99_COMPLEX.

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

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/std_complex.h
libstdc++-v3/include/tr1/type_traits
libstdc++-v3/testsuite/testsuite_tr1.h

index a11e34f..48e5451 100644 (file)
@@ -1,5 +1,19 @@
 2005-03-07  Paolo Carlini  <pcarlini@suse.de>
 
+       * include/tr1/type_traits (is_polymorphic): Don't forget
+       the virtual destructor, thus avoiding warnings.
+       * testsuite/testsuite_tr1.h (class AbstractClass,
+       class PolymorphicClass): Likewise.
+
+2005-03-07  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/std/std_complex.h (pow(const complex<_Tp>&,
+       const complex<_Tp>&)): Dispatch to either __complex_pow(__x.__rep(),
+       __y.__rep()) or __complex_pow(__x, __y) depending on the macro
+       _GLIBCXX_USE_C99_COMPLEX.
+
+2005-03-07  Paolo Carlini  <pcarlini@suse.de>
+
        * include/std/std_fstream.h (basic_fstream<>::open,
        basic_ifstream<>::open, basic_ofstream<>::open): Implement the
        resolution of DR 409 [Ready], call clear() on success.
index fb8122c..694acdc 100644 (file)
@@ -966,14 +966,20 @@ namespace std
   { return __builtin_cpow(__x, __y); }
 
   inline __complex__ long double
-  __complex_pow(__complex__ long double& __x, __complex__ long double& __y)
+  __complex_pow(const __complex__ long double& __x,
+               const __complex__ long double& __y)
   { return __builtin_cpowl(__x, __y); }
-#endif
 
   template<typename _Tp>
     inline complex<_Tp>
     pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
+    { return __complex_pow(__x.__rep(), __y.__rep()); }
+#else
+  template<typename _Tp>
+    inline complex<_Tp>
+    pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
     { return __complex_pow(__x, __y); }
+#endif
 
   template<typename _Tp>
     inline complex<_Tp>
index afdea0c..55f585f 100644 (file)
@@ -319,8 +319,11 @@ namespace tr1
       template<typename _Up>
         struct __second
         : public _Up
-       { virtual void __dummy(); };
-           
+       { 
+         virtual void __dummy();
+         virtual ~__second();
+       };
+
     public:
       static const bool __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>);
     };
index cb93225..fa514ca 100644 (file)
@@ -121,10 +121,16 @@ namespace __gnu_test
   { operator int() const; };
 
   class AbstractClass
-  { virtual void rotate(int) = 0; };
+  { 
+    virtual void rotate(int) = 0;
+    virtual ~AbstractClass();
+  };
 
   class PolymorphicClass
-  { virtual void rotate(int); };
+  { 
+    virtual void rotate(int);
+    virtual ~PolymorphicClass();
+  };
 
   class DerivedPolymorphic : public PolymorphicClass { };