From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13041 invoked by alias); 5 Jan 2008 07:55:59 -0000 Received: (qmail 12945 invoked by alias); 5 Jan 2008 07:55:17 -0000 Date: Sat, 05 Jan 2008 09:32:00 -0000 Message-ID: <20080105075517.12944.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/31780] [4.2/4.3 regression] ICE with incompatible types for ?: with "complex type" conversion In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "mark at codesourcery dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-01/txt/msg00414.txt.bz2 ------- Comment #22 from mark at codesourcery dot com 2008-01-05 07:55 ------- Subject: Re: [4.2/4.3 regression] ICE with incompatible types for ?: with "complex type" conversion gdr at cs dot tamu dot edu wrote: > | > I'd rather distinguish the constructor taking __complex__ by adding > | > a dummy parameter: > | > > | > enum _DummyArg { }; > | > complex(__complex__ double __z, _DummyArg); > | > | That will, however, break backwards compatibility for user programs (if > | any) relying on the constructor. > > That isn't a concern because I never published that constructor as a > contract in the interface of std::complex. I'm not sure what you mean by that. It's a public constructor; how do we know that there aren't users out there using it? How would they have known that they weren't supposed to use it? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31780