|
Boost : |
From: Daryle Walker (dwalker07_at_[hidden])
Date: 2002-12-20 03:35:13
On Wednesday, December 18, 2002, at 9:16 AM, Neal D. Becker wrote:
> What is the status of adding 64bit support to integer.hpp? I am
> looking for boost::int_t<n>::least for n > 32.
Nothing is happening right now. I'm sorry if I didn't make this clear
before: I'm _not_ doing this for you; you have to make the updated
header and documentation yourself and show it to us for review. And
please remember the concerns I brought up on earlier threads.
1. If 64-bits is already supported by the official C++ integral types,
then nothing has to be done.
2. Unfortunately, most compilers (AFAIK) keep int == long == 32 bits
instead of bumping long up to 64 bits. Those compilers could make a
new type for 64 bit integrals. But remember:
The existence of these extra types is NOT guaranteed.
Your extension has to fall back safely for a compiler without extended
integral types. It won't be accepted otherwise. (If it was accepted,
then a conforming compiler that doesn't have extensions wouldn't work.)
Maybe the preprocessor could be used here.
3. The implementations of the types in integer.hpp specialize templates
for certain numbers. There are gaps in those numbers; those gaps are
intentional, to reject too-large bit lengths. Don't fill in those
gaps; you have to move them around or completely change the
implementation.
4. The CRC library uses the resulting type from integer.hpp as a
value-based template parameter. There is no guarantee that extended
integral types can be used as value-based template parameters (since
they're unofficial). Your extension will _break_ CRC. Since I'm also
the CRC author, I'm willing to change CRC to be hard-coded to unsigned
long. There may be other Boost libraries that make the same
assumption. If there are, please let the maintainers of those
libraries know so they can be part of the discussion.
Daryle
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk