Boost logo

Boost Users :

From: Daryle Walker (darylew_at_[hidden])
Date: 2006-03-18 13:21:42


[Sorry that I'm very late. I'm still not caught up.]

On 3/6/06 7:57 AM, "Wu Yinghui, Freddie" <yhwu_at_[hidden]>
wrote:

> Just a quick question, does Boost integer traits classes support 64-bit
> integral types? I didn't seem to be able to get the following code compile:
>
> #include <boost/integer.hpp>
> #include <boost/integer/integer_mask.hpp>
> typedef typename boost::int_t<64> int_type;
> typedef boost::high_bit_mask_t<63> high_bit_type;
>
>
> I know that I can use boost::int64_t, but the problem is that the "64"
> here is not fixed in my code. It is dependent on some other parameters,
> so it could be 32 too.
>
> Am I missing anything?

On 3/6/06 12:53 PM, "John Maddock" <john_at_[hidden]> wrote:

> Apparently not: looking at the code there is no provision for use of long
> long when it's available. Daryle, fancy fixing this one?

Built-in extended types beyond "(unsigned) long" are not currently
supported. So 64-bit numbers are supported only if "long" itself is at
least 64 bits. The rationale for limiting the types was that types from the
"int_t" template should be usable as value-based template parameters, which
weren't necessarily supported for the extended built-in integer types. Can
extended types be used currently for value-based template parameters on any
platforms/compilers/etc.? Should we drop that idea and only worry about
run-time compatibility? Should we have two kinds of templates (for compile-
or run-time compatibility)?

-- 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net