$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