Boost logo

Boost :

From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2005-07-11 12:18:03


"Felipe Magno de Almeida" <felipe.m.almeida_at_[hidden]> escribió en el
mensaje news:a2b17b6050711023823971693_at_mail.gmail.com...
> On 7/11/05, Andrey Melnikov <melnikov_at_[hidden]> wrote:
>> David Abrahams wrote:
>> > "Jost, Andrew" <Andrew_Jost_at_[hidden]> writes:
>> >
>> >
>> >>>From: boost-bounces_at_[hidden]
>> >>
>> >>[mailto:boost-bounces_at_[hidden]] On Behalf Of Eelis van der
>> >>Weegen
>> >>
>> >>
>> >>>Jost, Andrew wrote:
>> >>>
>> >>>>I am curious if there is support for what I'm calling a "dual_state"
>> >>>>template class.
>> >>>
>> >>>From your description it sounds a lot like Boost.Optional. What are
>> >>
>> >>the main differences?
>> >>
>> >>>Eelis
>> >>
>> >>I'll admit I did not even pause at Boost.optional when I scanned the
>> >>library listing for previous work, a failure in my ability to connect
>> >>the description, "Discriminated-union wrapper for optional values,"
>> >>with
>> >>the concept I had in mind.
>> >
>> >
>> > Oh, you're right! That is a terrible one-line description, because
>> >
>> > a. It uses technical terms that many people probably don't know
>> > "discriminated union"
>> >
>> > b. optional doesn't really act like a union (in any way that matches
>> > my intuition)! I understand the theoretical connection, of
>> > course, but nobody is thinking that way when they read brief
>> > descriptions.
>> >
>> Well, even despite I do understand what "discriminated union" is, it's
>> more an implementation detail than a brief descripton of practical
>> applications for the library.
>>
>> I found Boost.Optional very useful for myself.
>>
>> http://www.boost.org/libs/optional/doc/optional.html#inplace describes a
>> usage scenario which has almost nothing to do with optionality.
>>
>> With boost::optional in-place construction facilities I can easily store
>> non-Copyable or non-DefaultConstructible objects in STL containers and
>> avoid extra construction, copy and dynamic memory allocation operations
>> in many scenarios, even in those not related to containers. For example,
>> I can return a fresh NonCopyable and NonDefaultConstructible object from
>> a function without often expensive heap operations.
>
> Isnt that the boost::ref goal? Or am I missing something?
>
No it isn't... and becasue your're asking, is evident that the
documentation for this is still inadequate.

Fernando Cacciola
SciSoft


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