------- 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

Reply via email to