Re: [boost] Re: Querying the Interest in a new AutoPtr class?

Jonathan Turkanis wrote:
There is a policy-based pointer, based on the Loki SmartPtr, coming up for review soon which can emulate an auto_ptr and allows deletion policy to be specified as part of the 'storage policy'.
I don't know much about the Loki SmartPtr, but it sounds like it might be a little hard to use if you need to setup policies... I wanted to create a very simple AutoPtr that was essentially the same as the STL auto_ptr (and backwards compatible with it).
I only looked very briefly, but I don't see how your auto_ptr can be returned from functions. Also, why do you need the m_Owner variable?
Correct me if I'm wrong, but wasn't there a specific reason why the STL auto_ptr was made so it couldn't be passed to or returned from a function? I don't have my Stroustrup book with me to check. Anyways, if you want to pass or return the pointer to/from a function, just use the .get() or .release() functions. I need the m_Owner variable to tell me if I own the pointer before I delete it. Chris Just __________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com

Chris Just wrote:
Jonathan Turkanis wrote:
There is a policy-based pointer, based on the Loki SmartPtr, coming up for review soon which can emulate an auto_ptr and allows deletion policy to be specified as part of the 'storage policy'.
I don't know much about the Loki SmartPtr, but it sounds like it might be a little hard to use if you need to setup policies...
It comes with a collection of ready made policies, including policies for auto_ptr and move_ptr (at least it will soon).
I wanted to create a very simple AutoPtr that was essentially the same as the STL auto_ptr (and backwards compatible with it).
Unfortunately, you haven't (see below). Furthermore, auto_ptr is widely recognized as unsafe because it is too easy to transfer ownership unintentionally.
I only looked very briefly, but I don't see how your auto_ptr can be returned from functions. Also, why do you need the m_Owner variable?
Correct me if I'm wrong, but wasn't there a specific reason why the STL auto_ptr was made so it couldn't be passed to or returned from a function?
This was true of the initial version. The standard version, which is version 3, implements a flavor of move semantics (and it doesn't quite work).
Anyways, if you want to pass or return the pointer to/from a function, just use the .get() or .release() functions.
But this subverts the resource management system.
I need the m_Owner variable to tell me if I own the pointer before I delete it.
For auto_ptr, checking that the stored pointer is non-null should be sufficient. Jonathan
participants (2)
-
Chris Just
-
Jonathan Turkanis