std_complex.h (complex<double>): Constructor complex<double>::complex(const complex<float>&) is not explicit...

2000-11-21  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<double>): Constructor
	complex<double>::complex(const complex<float>&) is not explicit;
	since it is a promotion.
	(complex<long double>): Constructors taking complex<float> and
	complex<double> are not explicit.

From-SVN: r37599
This commit is contained in:
Gabriel Dos Reis 2000-11-21 00:08:02 +00:00 committed by Gabriel Dos Reis
parent b5ecf629d5
commit b555ebaa9e
2 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2000-11-21 Gabriel Dos Reis <gdr@codesourcery.com>
* include/bits/std_complex.h (complex<double>): Constructor
complex<double>::complex(const complex<float>&) is not explicit;
since it is a promotion.
(complex<long double>): Constructors taking complex<float> and
complex<double> are not explicit.
2000-11-20 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/std_complex.h: Tweaks, include cmath for abs overloads.

View File

@ -617,7 +617,7 @@ namespace std
#ifdef _GLIBCPP_BUGGY_COMPLEX
complex(const complex& __z) : _M_value(__z._M_value) { }
#endif
explicit complex(const complex<float>&);
complex(const complex<float>&);
explicit complex(const complex<long double>&);
double real() const;
@ -772,8 +772,8 @@ namespace std
#ifdef _GLIBCPP_BUGGY_COMPLEX
complex(const complex& __z) : _M_value(__z._M_value) { }
#endif
explicit complex(const complex<float>&);
explicit complex(const complex<double>&);
complex(const complex<float>&);
complex(const complex<double>&);
long double real() const;
long double imag() const;
@ -920,6 +920,8 @@ namespace std
// These bits have to be at the end of this file, so that the
// specializations have all been defined.
// ??? No, they have to be there because of compiler limitation at
// inlining. It suffices that class specializations be defined.
inline
complex<float>::complex(const complex<double>& __z)
: _M_value(_ComplexT(__z._M_value)) { }