Boost logo

Boost :

Subject: Re: [boost] [xint] Design Question
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2010-06-17 17:29:21


----- Original Message -----
From: "Stewart, Robert" <Robert.Stewart_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Thursday, June 17, 2010 1:10 PM
Subject: Re: [boost] [xint] Design Question

>
> Chad Nelson wrote:
>> On 06/16/2010 02:31 PM, vicente.botet wrote:
>>
>> >> The problem is: what should the library do if the user asks for an
>> >> unsigned *non*-fixed-length integer? [...]
>> >
>> > What about making the difference between two unsigned integers a
>> > signed integer?
>>
>> That sounds like a useful behavior, but if the developer using the
>> library says it should be an unsigned number, I don't think
>> the library should override that.
>
> According to an old C book I have (C: A Reference Manual, 2nd ed, Harbison and Steele), "the result of subtracting one unsigned integer from another is always unsigned and therefore cannot be negative." That may not be definitive, and the C++ standard doesn't dictate the type of the result other than, perhaps, by incorporating the C standard to which I have no access, but it certainly sets expectations that your library ought not violate.

This is a good option for fixed size unsigned integers, but not necesary for unlimited size unsigned integers.

Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk