Boost logo

Boost Users :

From: Johan Nilsson (johan.nilsson_at_[hidden])
Date: 2005-03-03 09:23:46


"Peter Dimov" <pdimov_at_[hidden]> wrote in message
news:006101c51ff2$f5868e30$6501a8c0_at_pdimov2...
> Johan Nilsson wrote:
>
> [...]
>
>> std::vector<shared_ptr<Foo> > foos(10);
>> std::for_each(foos.begin(), foos.end(),
>> _1 = shared_ptr<Foo>(new Foo));
>
> Lambda way (according to the docs, I haven't tried it):
>
> std::for_each( foos.begin(), foos.end(),
> _1 = bind( constructor< shared_ptr<Foo> >(), new_ptr<Foo>() )
> );
>

I searched the docs but obviously missed/skipped that part ... embarrassing.

> (probably leaks when new throws)
>
> Old school way:
>
> shared_ptr<Foo> createFoo()
> {
> return shared_ptr<Foo>( new Foo );
> }
>
> std::generate( foos.begin(), foos.end(), createFoo );

Cleaner, nicer (but one of my intentions was to finally get around to learn
how to use BLL).

Thanks // Johan


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net