
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