Eric! You DA Man!

-- 
Joel de Guzman
http://www.boost-consulting.com
http://spirit.sf.net



Eric Friedman <[EMAIL PROTECTED]> wrote:
> Dave Gomboc wrote:
> [snip]
>> I don't like get() because I cannot write x.get() when x is a POD.  This
>> would mean I have to support nilable<T> and T with different code,
>> which is exactly what I'm trying to avoid.
> 
> Why not overload boost::get again for optional? This would certainly improve
> consistency with variant. For instance:
> 
>   optional<T> opt;
>   ...
>   T& r = boost::get<T>(opt); // throws bad_get if opt empty
>   T* p = boost::get<T>(&opt); // p is null if opt empty
> 
> In the same line, we could make optional visitable:
> 
>   class my_visitor : public boost::static_visitor<> {
>     void operator()(boost::empty) const
>     {
>       ...
>     }
> 
>     void operator()(const T& operand) const
>     {
>       ...
>     }
>   };
> 
>   boost::apply_visitor( my_visitor(), opt );
> 
> Support for visitation would also allow seamless integration with the
> typeswitch construct I'm working on:
> 
>   switch_(opt)
>     = case_<boost::empty>( ... )
>     = case_<T>( ... )
>     ;
> 
> I don't have experience with boost::optional, so I don't know how any of the
> above would require changes to its interface or concepts.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to