
Boost : 
From: Daryle Walker (darylew_at_[hidden])
Date: 20061104 15:34:20
I'm working on a bug that's only present on machines that use 2's complement
for their builtin integers that use all possible bit combinations (like the
common platforms). How can I detect this?
Stuff I tried (knowing that my system matches):
1. INT_MIN == INT_MIN
My compiler didn't find it a match for some reason
(Apple's special GCC on Mac OS X 10.4.8)
2. (INT_MIN % 3 != 0) && (INT_MIN % 2 == 0)
This is true, especially since I was doing a GCD(INT_MIN, 6) == 2,
but I don't think it's sufficient.
3. 1 == ~0
This worked. Then I found out that ~0 may trap on some systems
(like 1s' complement). Worse, I found out that INT_MIN could
equal INT_MAX, leaving out the final power of 2 for trap reasons,
so [2] is flawed.
4. ~1 == 2
Also 2's complement, but leaves out the trap possibility (not
tried)
5. INT_MIN + INT_MAX == 1
This worked. It guarantees the bounds, but not that INT_MIN is
a negative of a power of 2.
6. (INT_MIN + INT_MAX == 1) && ((INT_MIN ^ INT_MAX) == 1)
This is what I currently got. It matches two properties of
2's complement systems that use every bit combination. But is
it sufficient?
7. [6] && [4]
(Not tried) Would this be an improvement? Or is it redundant?
 Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk