Subject: Re: [boost] Boost.Integer makeover
From: John Bytheway (jbytheway+boost_at_[hidden])
Date: 2009-11-29 12:38:40
John Maddock wrote:
>> What in the world is "is_it_what" supposed to convey? The name is
>> nonsensical to me.
> Me too, I've removed the example. Frankly I'm not sure if anyone is
> actually using the integer-masks, compile-time log2 or min/max
> functions, I don't really see the point, and the examples given don't
> help much :-(
I've used the compile-time log2 to determine the smallest integer type
in which I can store any value of an enumeration. It's not easy to use,
though; I'd prefer something that returned ceil(log2(n)) rather than
floor(log2(n)). I can't make any sense of the existing example.
I've used the bit masks too, though I can't remember what for right now.
The point of low_bit_mask_t is to avoid code like this, which doesn't
work when n==32 and sizeof(int)==4:
uint32_t mask = (1<<n)-1;
(As the docs say: "When Bits is the exact size of a built-in unsigned
type, the implementation has to change to prevent undefined behaviour.").
The high_bit_mask_t is less useful. I don't see a good use for it. I
don't think I've ever used min/max, either.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk