Boost logo

Boost :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2004-09-11 22:27:06


"Daniel James" <daniel_at_[hidden]> wrote

> When running your tests, the intel linux compiler gives this warning:
>
> main.cpp(143): warning #858: type qualifier on return type is meaningless
> const int cf();
>
> which means that BOOST_TYPEOF_PRESERVE_LVALUE(cf()) gives int, and your
> test fails, so you might want to remove that test.

Removed.

> Also neither encode_signed nor encode_unsigned seem to work for zero
> values. I think encode_signed is missing a check for zero, and I guess
> encode_unsigned should add 1 to value when encoding, and then subtract 1
> when decoding - or have a special case like encode_signed does.

Fixed.

I actualy re-wrote the integral encoding part, taking more bit-wise
approach, which allowed me to handle all integral types (signed, unsigned
and boolean) an a uniform manner. I encode 4-byte types using two integers
(because of zero, and also limitations on the array size I ran into in GCC),
and shorter types using just one.

I also switched from mpl::int_ to mpl::size_t.

http://groups.yahoo.com/group/boost/files/typeof.zip

Thanks,
Arkadiy


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