http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54348

--- Comment #7 from Jason Vas Dias <jason.vas.dias at gmail dot com> 2012-08-21 
20:34:06 UTC ---
(In reply to comment #2)
> (In reply to comment #0)
> > Shouldn't g++ be complaining about initializing a string with a list<string>
> > rather than this cryptic "no match for ternary 'operator?:'" here ?
> 
> No, not really.
> 
> The object being initialized by the result of the condition expression is
> irrelevant, the conditional expression isn't valid whether or not you're using
> it to initialize another object.
> 
> In this reduced version it wouldn't make sense to refer to initializing any
> object with any other:
> 
> struct A {} a;
> struct B {} b;
> 
> void f()
> {
>     false ? a : b;
> }

but this is not the same. surely ? the above is not a valid statement -
I was saying:

      some_type some_object = false ? a : b;

Reply via email to