Boost logo

Boost :

Subject: Re: [boost] [Boost-users] numeric_cast_traits/cstdint: request forfix in boost1.49
From: Robert Ramey (ramey_at_[hidden])
Date: 2012-01-28 12:38:43


John Maddock wrote:
>> Currently HPUX/acc compiler fails in boost 1.48, because
>> boost::int8_t was being interpreted as a char, This causes duplicate
>> class definition in the file
>> ./boost/numeric/conversion/detail/preprocessed/numeric_cast_traits.hpp
>> and hence many of compiled boost libs fail.
>
> Thanks for raising this on the list, I just posted these comments to
> the Trac ticket:
>
> "IMO this is the wrong fix: our code should make no assumptions about
> the actual type of uintXX_t etc.
>
> IMO the preprocessed headers are just plain wrong - you can't mix
> concrete types (char short etc) with typedefs (intXX_t) because
> you're just asking for problems with duplicate specializations. It has to
> be all real
> types throughout.
>
> BTW in addition to the two platforms mentioned above, this is also
> broken for Sun on Linux.
>
> Reassigning to the person who made these changes..."
>
> Not sure if we can fix this for 1.49, but you're right, it is a high
> priority.
>
> Hopefully Brandon Kohn is reading this as he made those changes?

I've taken a careful look at this library as part of something else I'm
working on. Its really hard to understand how the library is supposed
to be used and what facilities it provides. The usage of policies
makes it clear that one can customize it, but the default policies
don't seem to be explained. For example, I had a simple question:
if I use the library with the default policies to convert an unsigned
char with a value of 128 to a signed char, what will happen?
Will an exception be thrown (which is what I want) or will
something else happen. I couldn't get an easy answer to a question
like this. Of course I could troll the source, but that's also quite
time consuming. For starters, the documenation needs to be
improved.

Robert Ramey


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