Boost logo

Boost :

From: Maarten Kronenburg (M.Kronenburg_at_[hidden])
Date: 2006-05-28 09:10:52

Perhaps we have to specify such an unsigned
(modular) integer so that implementations can provide it.
Such an unsigned_integer would then have a
static method set_modulus( const integer & ).
Then I should merge the unsigned_integer and
modular_integer into unsigned_integer in the
I will refer to [expr.unary.op] item in any case.

"Sebastian Redl" <sebastian.redl_at_[hidden]> wrote in message
> Beman Dawes wrote:
> >That isn't correct, AFAICT. An unsigned does support unary negation.
> >
> >5.3/9 says "The operand of the unary - operator shall have arithmetic or
> >enumeration type and the result is the negation of its operand. Integral
> >promotion is performed on integral or enumeration operands. The negative
> >an unsigned quantity is computed by subtracting its value from 2n, where
> >is the number of bits in the promoted operand. The type of the result is
> >type of the promoted operand."
> >
> >
> The operator exists, but only for the language unsigned integers, which
> aren't really unsigned integers, but modulo integers, as is obvious from
> the definition of the negation. The same definition is impossible for a
> (theoretically) infinite-precision integer, because, lacking a number of
> bits in the representation (n), there is no 2^n from which can be
> subtracted.
> Sebastian Redl
> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at