------- Comment #23 from gdr at cs dot tamu dot edu 2008-01-06 15:28 ------- Subject: Re: [4.2/4.3 regression] ICE with incompatible types for ?: with "complex type" conversion
"mark at codesourcery dot com" <[EMAIL PROTECTED]> writes: | 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<double>. | | I'm not sure what you mean by that. It's a public constructor; I mean that it is not a standard constructor, and it is not a constructor I documented as a GNU extension. The fact that it is a public constructor is not, by itself, a documentation that it is a standard constructor or a constructor that users should use. -- Gaby -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31780