Boost logo

Boost :

From: Rani Sharoni (rani_sharoni_at_[hidden])
Date: 2004-02-11 09:20:11


David Abrahams wrote:
> "Rani Sharoni" <rani_sharoni_at_[hidden]> writes:
>
>>>> When source and destinations un-cv types are the same or
>>>> base/derived direct initialization and copy initialization are the
>>>> same (per 8.5/14/4/2) and this fact was (viciously) exploited by
>>>> the old auto_ptr.
>>>
>>> Something's missing from that sentence to make it comprehensible.
>>>
>>> It has the same grammatical structure as "When my hand is blue or my
>>> hair is green and I was a fool", which is not a complete sentence.
>>
>> I'm not sure that I understand your intention.
>
> I'm trying to say that I don't understand what you're saying in that
> "sentence", and I'm trying to explain why I don't understand it. The
> "sentence" is grammatically incomplete. I'd like you to explain what
> you're trying to say.

For some reason I thought that what I wrote is so trivial that even grammar
errors will not hide my intentions. It seems that Christoph Ludwig
understand my intentions.

Direct initialization is the *same* as copy initialization when constructing
object of the same type using non-explicit (i.e. converting) constructor.

struct A { A(int); };

A a1(A(10)); // #1
A a2 = A(20); // #2 same as #1

Both initializations are the same per 8.5/14/4/2:
<Q> If the initialization is direct-initialization, or if it is
copy-initialization where the cv-unqualified version of the source type is
the same class as, or a derived class of, the class of the destination,
constructors are considered. The applicable constructors are enumerated
(13.3.1.3), and the best one is chosen through overload resolution (13.3).
</Q>

IMO your suggestion is fully compliant and EDG has bug that confuses
everyone.

I don't have anything else to add to this discussion.

Thanks,
Rani

No alarms and not surprises silence.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk