------- Comment #36 from mark at codesourcery dot com 2008-01-08 03:39 ------- Subject: Re: [4.2/4.3 regression] ICE with incompatible types for ?: with "complex type" conversion
gdr at cs dot tamu dot edu wrote: > | (Both have > | values unrepresentable in the other, of course.) Would you please give > | an example of how this change, together with the new constructors, would > | make some program behave differently than the standard says it should? > > Please see the details in the proposal put foward by BS, me, and JSA titled > `initializer list' (post Toronto meeting), and the recent `rationale' > paper by BS in the mid-term mailing. Look for the section or word > `narrowing'. I don't know where to find those things, unfortunately. Do you have a URL? Would you please provide an example of how: complex<float> { Complex (int i) : real_(i) {}; Complex (float f): real_f() {}; float real_; float imag_; }; would be different than just: complex<float> { Complex (float f): real_f() {}; float real_; float imag_; }; when passed an "int"? I'm having a hard time seeing how making the conversion in the constructor would be different than making it at the call site, whether or not the argument is a constant. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31780