aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/std_complex.h8
2 files changed, 13 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fff54a6..f26e8ff 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/include/bits/std_complex.h b/libstdc++-v3/include/bits/std_complex.h
index 35ca378..de5ad9a 100644
--- a/libstdc++-v3/include/bits/std_complex.h
+++ b/libstdc++-v3/include/bits/std_complex.h
@@ -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)) { }