type_traits (is_polymorphic): Don't forget the virtual destructor, thus avoiding warnings.

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.

From-SVN: r96048
This commit is contained in:
Paolo Carlini 2005-03-07 22:22:35 +00:00 committed by Paolo Carlini
parent 92db3ec9db
commit cff001b2e8
4 changed files with 35 additions and 6 deletions

View File

@ -1,3 +1,17 @@
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,

View 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>

View File

@ -319,7 +319,10 @@ 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>);

View 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 { };