$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Yuriy Koblents-Mishke (yurakm_at_[hidden])
Date: 2006-04-28 00:19:41
Test Code:
std::numeric_limits<long> lm;
boost::rational<long> mn( lm.min() );
std::cout << mn << '=' << mn / 1 << std::endl;
Output:
-2147483648/1=1/0
Reason:
lm.min() == -2147483648
lm.max() == 2147483647
and unary minus is not well defined for lm.min();
on my system
-lm.min() == -2147483648
The problem is expected with any computer representing negative integers
using binary two's compliment.