$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [Proto] Evaluating non-trivial expression
From: Eric Niebler (eric_at_[hidden])
Date: 2008-09-30 17:15:49
Joel Falcou wrote:
> Eric Niebler a écrit :
>> Interesting. You might try disabling Proto's comma operator and
>> writing your own that fires off expression evaluations.
>>
> I thought of that but I need the whole AST for checking for various
> stuff. Basically I transform a algebra AST into a a pair of objects :
> a tuples of matrix begin() pointer and a stripped AST so I can
> generate a software pipelined evaluation loop nest.
>
> I tried adding the destructor-based evaluation and it seems to work
> but I fear there may be some side-effects I'll regret later.
Aside from the usual advice against doing stuff in destructors that can
fail ... how do you ensure that only the top-level (outermost) object's
destructor causes an evaluation?
Might it be cleaner to be more explicit about evaluation, e.g., like:
eval(( a = b+c, u = x + y, z = 3*e ));
?
-- Eric Niebler BoostPro Computing http://www.boostpro.com