On Tue, 31 May 2011 16:16:37 -0400, eles <e...@eles.com> wrote:

if n is unsigned int, and 0, then this becomes i = 0; i <=
uint.max; i++
Basically, using subtraction in loop conditions is a big no-no.

Yes, I have been trapped there. More than once. And yes, n=0 is a
special case. An yes, is a big no-no. It also appears when *i* is
unsigned int and you are decrementing it and comparing (with egality)
against 0. The loop is infinite.

For me, conceptually, the problem is simply that unsigned types, once
at zero, should throw exception if they are decremented. It is
illogical to allow such operation. However, type information is only
available at the compile time, so when the program is running is
difficult to take measures against it.

This is not practical. It would be too expensive to check because the hardware does not support it.

I thought, however, that those exception should be thrown in the
"debug" version.

However, there is no reason to make, instead, UTYPE_MAX a big no-no.

As has been said, multiple times, UTYPE_MAX is not a valid index, and that is not because of the open-interval on the right. It's because of addressing in a zero-based index world, you simply can't have an array bigger than your address space. An array with UTYPE_MAX as a valid index must have at least UTYPE_MAX + 1 elements. How this possibly can be a "huge factor" for you, but having to put +1 and -1 all over the place for mundane array indexing is beyond my comprehension. If you are looking for an iron-clad reason for closed-right indexing, this isn't it.

But, it's not really important anyways. The open-right indexing ship has not only sailed, it's made it across the ocean, formed several colonies, and is currently declaring independence. You're about a decade too late with this argument.

How much of a possibility would you think Matlab has of changing its indexing scheme to be like D's? About the same chance as D adopting Matlab's, I'd say. If this is a reason you will not use D, then I'm sorry that you won't be with us, but that's just life.

-Steve

Reply via email to