$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: DY, JERRY U \(SBCSI\) (jd2419_at_[hidden])
Date: 2004-07-28 14:04:19
In boost/detail/numeric_traits.hpp, integer_traits can be used to find
the difference_type for an int type, in aC++, I get a long long -- I
don't think that's the correct result, but can somebody please tell me
why not? Thanks!
integer_traits<int>::difference_type // long long?? I expect this to
be an int
Here's why:
template <class Integer, bool = true>
struct integer_traits
{
...
typedef typename
if_true<(int(x::is_signed) // true
&& (!int(x::is_bounded) // true
|| (int(x::digits) + 1 >=
digit_traits<boost::intmax_t>::digits))) // false
>::template then<
Integer,
typename if_true<(int(x::digits) + 1 < digit_traits<signed
int>::digits)>::template then< // false
signed int,
typename if_true<(int(x::digits) + 1 < digit_traits<signed
long>::digits)>::template then< // false
signed long,
// else
intmax_t // this is long long
>::type>::type>::type difference_type;
...
}
-Jerry