From b555ebaa9e48c2b52b675258021a98b0f9adb7f8 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis <gdr@codesourcery.com> Date: Tue, 21 Nov 2000 00:08:02 +0000 Subject: [PATCH] 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 --- libstdc++-v3/ChangeLog | 8 ++++++++ libstdc++-v3/include/bits/std_complex.h | 8 +++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index fff54a6cf0c1..f26e8ffff729 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 35ca37890e38..de5ad9a97c50 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)) { } -- GitLab