On 03/07/2012 07:51 PM, Ellery Newcomer wrote:
On 03/07/2012 12:23 AM, Ali Çehreli wrote:

There are probably hundreds of discussions about that over the years on
many different language newsgroups and forums. :) There is no clear
winner: Both sides of the arguments seem to have good points.

Ali


know any good ones off the top of your head?

Really randomly:

* Unsigned is better because some things are never negative: sizes, indexes, etc.

* But we occasionally need to subtract one from the other. The following is not safe unless we are sure that the left-hand side is greater:

   size_t i = /* ... */;
   size_t j = /* ... */;

   foo(i - j); // Is this the difference or a very large number?

Another bug because of an unsigned type:

   for (size_t i = /* ... */; i >= 0; --i) {

(Although I think most compilers catch that one.)

I searched for the following terms on comp.lang.c++.moderated and found many interesting discussions:

  size_t unsigned signed

I don't have a strong opinion myself.

Ali

Reply via email to