On 2003-02-12 5:56 AM, "Philippe A. Bouchard" <[EMAIL PROTECTED]>
wrote:

> Jon Kalb wrote:

>> I wonder if it wouldn't be better to have a compile time error in this
>> situation rather than to create a trap for the unsuspecting. It does
>> put an additional burden on the user to ensure that the types are
>> indeed polymorphic, but I think they have that burden in any case.
>> The currently implementation allows them to be blissfully ignorant of
>> this situation.
>> 
>> I appreciate that your library will document that it only works for
>> polymorphic types, but I fear that to be an insufficient prophylactic.
> 
> Well in fact, the following assignment could be verified at compile-time
> with some smart_ptr<> checking policy:
> 
> class A { char c; };
> 
> class B { char c; };
> 
> class C : public A, public B { char c; };
> 
> 
> smart_ptr<C> pC = new C;
> 
> smart_ptr<A> pA = pC;    // Ok.
> 
> smart_ptr<B> pB = new B;    // [<- correction here]  Ok.
> 
> smart_ptr<B> pA = new C;    // Ok.
> 
> smart_ptr<B> pB = pC;    // Generate compile-time error.
> 
> 
> 
> Philippe A. Bouchard

I'm afraid that I don't see your point. How is this relevant?

Jon Kalb
[EMAIL PROTECTED]

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to