about kde4's smart pointer

Frans Englich englich at kde.org
Tue Oct 3 23:24:20 BST 2006


On Tuesday 03 October 2006 22:16, Frank Osterfeld wrote:
> On Tuesday 03 October 2006 17:10, Thiago Macieira wrote:
> > Cyrille Berger wrote:
> > >On Tuesday 03 October 2006 16:08, Thiago Macieira wrote:
> > >> Doesn't QSharedData/QSharedDataPointer do what you want? They have
> > >> copy-on-write semantics, though.
> > >
> > >yes and that's the problem :) They are designed to reduce the number of
> > > copy, not to replace pointers and be used as smart pointers.
> >
> > There's QPointer, but your object has to be a QObject.
>
> QPointer only guards the pointer (i.e. resets it to 0 if deleted), but it
> doesn't do refcounting and auto-deletion. In my own code, I use Frerich's
> KSharedPtr replacement he proposed here a year ago [1]. One of it's
> advantages is that it's not necessary for the the shared type to inherit
> KShared, so one can use the type as normal non-pointer object (IIRC
> operator=() etc. is private for KShared).

Why would you want to store a reference counted object on the stack? As an 
optimization?


Cheers,

		Frans




More information about the kde-core-devel mailing list