Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2006-05-20 07:42:54


Rene Rivera wrote:
> I think we all have to keep in mind the scope of this utility. It not
> meant to solve all the pointer uses.

I understand your concern, still, in my eyes COW is just another
application of the handle/body pattern and thus not /that/ far
away from the scope of this submission.

> There's another utility that people keep asking for, the traits pointer.

Whether a single policy-based can-do-whatever-pointer is really
what we want is a different story.

>>>
>>>It seems like you assume that two pimpl_ptr instances can hold the same
>>>pointer. This is _not_ the case.
>>
>>Why not?
>
> From my experience, you don't because at that point you would use some
> other kind of pointer. Most likely a reference counted pointer that can
> travel across DLL boundaries.

<cite>
    However, it's implementation can be tricky, and with many pitfalls
    (especially regarding memory management).
</cite>

    template<typename T> void dispose_func(void* ptr)
    { delete static_cast<T*>(ptr); }
    // use void(*)(void*) to this thing for freeing the shared context
    // and the instance

Regards,

Tobias


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