Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-07-15 09:38:08


From: "Toon Knapen" <toon.knapen_at_[hidden]>

> On Monday 15 July 2002 16:07, David Abrahams wrote:

> > One idea to consider:
> >
> > x.assign() = blah blah blah
> >
> > would at least set the LHS off from the rhs a little better.
>
> Or add some policy to the matrices and vectors to indicate if they are
> aliased. e.g. 'matrix< double, column_major, restrict > a(10,10);'

I don't think that's too good, since you might want to use a in both kinds
of expressions:

a = a * b; // aliased
a = x * y; // not aliased

> Or better yet, just rely on 'restrict' but I'm not sure how that can be
> detected inside the et mechanism.

Considering it's not standard C++, I don't think there's a way.

    a .noalias= x * y;

would be nice, or possibly

    a /noalias = x * y;

or
    a [noalias]= x * y;

Mmm, that last one's tasty...

-Dave


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