Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-03-29 08:13:22


Ulrich Eckhardt <doomster_at_[hidden]> writes:

> On Wednesday 29 March 2006 08:05, Václav Veselý wrote:
>> I'm confused with syntax. new_<T> always creates auto_ptr<T>. How can I
>> create for example shared_ptr<T>?
>
> You probably can't, but:
> - std::auto_ptr is much less resource intensive (shared_ptr requires an
> additionally, dynamically-allocated structure to hold some internals)
> - you don't need to, as auto_ptr converts to shared_ptr, there is a special
> ctor taking an auto_ptr

Unfortunately for this particular facility, the converting constructor
is explicit, so you can't do

   f(new_<T>(a, b, c))

if f takes a shared_ptr<T>.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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