|
Boost : |
From: Calum Grant (calum_at_[hidden])
Date: 2005-07-16 13:50:47
Andrey Melnikov wrote:
> Calum Grant wrote:
> > Andrey Melnikov wrote:
> >>
> >>I hate extra dynamic memory allocation even more than I hate extra
> >>copies, because the former cannot be optimized out and
> usually takes
> >>more time than 10 extra copies. Well, pool allocators help a lot
> >>sometimes, but it's an optimization technology.
> >>
> >>I like Boost.Optional because it offers a good way to deal with
> >>optonality without any extra pointers, memory allocations, special
> >>"NULL" values or construction or copy operations . I think it's way
> >>different from the concept of smart pointers.
> >
> >
> > But we're talking about private implementation. From a semantic
> > perspective, Optional behaves like a smart pointer with a "copy on
> > assign" policy. Perhaps there would be fewer howls of
> disapproval if
> > I called it a smart container, not a smart pointer.
>
> It's just a terminology question. Boost.Optional isn't a
> "pointer". It
> isn't an enhanced C pointer, it isn't used like a pointer, it doesn't
> use pointers internally. It can be "dereferenced", but it's just a
> syntactic feature.
>
> Also it isn't a container in STL sense. It doesn't provides range
> interface, iterators etc.
>
> I would call Boost.Optional a proxy.
Perhaps a broker.
> >
> > If an implementation improves a smart container/pointer in this
> > circumstance then that's fanstastic.
>
> I don't understand you here.
All I'm saying is that one could regard in-object storage as an
optimization over out-of-object storage, which is a "good thing".
Calum
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk