Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2008-03-31 22:55:38


Steven Watanabe wrote:
> AMDG
>
> Eric Niebler wrote:
>> There's no problem with putting an expression in a terminal, except that
>> Proto algorithms like matches and deep_copy won't recurse into it.
>>
>
> Good to know. That and the new make_expr allow sufficient
> manual disambiguation for now. I guess that my main issue with
> make_expr<Domain> for disambiguation is that if we have an
> expression in a domain, we probably don't want to throw away
> the domain information to use it with another domain.

It's as_expr(), not make_expr(). The former will be a no-op if the
argument is already an expression in the current domain, the latter will
always make a new expression.

And as_expr() doesn't lose the domain information of its argument -- it
just adds an additional domain wrapper, so you might get
stevens_wrapper<lambda_wrapper<expr<...> > >. But I haven't yet figured
a good way to expose the nested domain information. A use case would help.

-- 
Eric Niebler
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