Boost logo

Boost :

Subject: Re: [boost] [Review] Boost.Type Traits Extension by Frederic Bron
From: Frédéric Bron (frederic.bron_at_[hidden])
Date: 2011-03-15 06:31:34


> I have not yet see the implementation and the tests (I will do it this
> evening), but in my opinion the logic of the 37 operators the library
> defines already is limited to binary operators, prefix unary operators and
> postfix unary operators. That mean that there are only 3 implementations to
> maintain, and the use of macros should do the rest.
>
> The same should apply for the tests. Write tests for the 3 kind of operators
> and use macros to test all the operators.

Yes and no.
Yes: the implementation uses only three different headers BUT
some operations are forbidden by the standard. For example you cannot write:
double x, y;
x%y;
This leads to compile time error.
And every operator has its own rule of what is forbidden and what is not.
Another example: assignement operators must have LHS be non const!
I handle that with macros in the implementation FORBIDDEN_IF but in
the tests, specific tests must be provided to ensure these specific
behavior have been taken into account.

> I really would like to see the complete list of operators provided by the
> library, at least be as good as operators traits of
> Boost.ConceptsTraits/Operators is.

I know... later maybe somebody can add the missing traits.

Frédéric


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