From: Gennadiy Rozental (rogeeff_at_[hidden])
Date: 2002-04-30 21:51:42


"Peter Dimov" <pdimov_at_[hidden]> wrote in message
news:00f801c1f068$0c7fc650$1d00a8c0_at_pdimov2...

>
> X is defined in X.hpp, along with the associated traits specializations.
The
> problem, with a smart_ptr that uses the type of its template parameter to
> somehow alter its type (via traits, sizeof(expression-involving-X), or
some
> other mechanism), is that a.cpp sees a different smart_ptr<X>. So there's
an
> ODR violation.
>
> Note that shared_ptr doesn't have this problem.
>

And how shared_ptr will automatically switch between intrusive/nonintrusive
counting? I asking cause it was one of the reason we started to talk about
traits.

Gennadiy.