|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-05-28 14:24:40
Sebastian Redl <sebastian.redl_at_[hidden]> writes:
> David Abrahams wrote:
>
>>Sebastian Redl <sebastian.redl_at_[hidden]> writes:
>>
>>
>>
>>>The main (only, really, when it comes down to it) difference
>>>between a signed and an unsigned integer is that an unsigned integer is
>>>defined never to have a value less than 0. There are very valid reasons
>>>to enforce such a restriction,
>>>
>>>
>>
>>For example?
>>
>>
> Various physical quantities only make sense for non-negative
> values.
Likewise, some make sense only between 0 and 2*pi or between 0 and 1,
or...
that doesn't mean we should define a separate floating point type to
represent each of these ranges.
> It
> would be conceivable to use a boundless unsigned integer as the value
> type in the PQS library. Things like length - something cannot have
> negative length, and having that restriction enforced by the type itself
> would be convenient.
Maybe those kinds of enforcements should be handled generally, with a
range-checked wrapper.
> I have no doubt that there are other applications too. size_t is
> unsigned - of course, a boundless int should not be necessary for
> specifying array indices, but similar applications might exist.
The unsigned builtins exist in order to squeeze the most out of a
limited number of bits. An arbitrary precision int doesn't have that
problem.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk