Boost logo

Boost :

From: Wynand Winterbach (wynand_at_[hidden])
Date: 2003-10-30 08:40:30

On Wed, Oct 29, 2003 at 10:13:14PM -0700, Dave Gomboc wrote:
> > so where should I use unsigned?
> >
> > -Thorsten
> Use unsigned numeric types whenever negative values aren't
> permitted or don't make sense.
> Dave

I quote Bjarne Stroustrup (page 73, The C++ Programming Language, Third edition)

"The unsigned integer types are ideal for uses that treat storage as a bit array.
Using an unsigned instead of an int to gain one more bit to represent positive
integers is almost never a good idea. Attempts to ensure that some values are
positive by declaring variables unsigned will typically be defeated by the
implicit conversion rules"

As an example that got me when I started programming, consider the following
seemingly innocuous case:

char blah[6];

for ( unsigned i = 5; i >= 0; i-- )
  cout << blah[i];

This fails i can never become -1. Actually, you'll have an infinite loop.


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