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