On Mon, 22 Jul 2013 04:47:34 +0100, JS <js.m...@gmail.com> wrote:

Doing simple stuff like

for(int i = 0; i < s.length - 1; i++) fails catastrophically if s is empty. To make right one has to reduce performance by writing extra checks.

There seems to be no real good reason why size_t is unsigned... Surely one doesn't require too many strings larger than 2^63 bits on an x64 os...

I running into a lot of trouble because of the way D deals with implicit casting of between signed and unsigned.

please don't tell me to use foreach... isn't not a panacea.

I have always found the whole size is an unsigned int thing annoying too. In C/C++ I simply cast strlen() and co to 'int' because in all but very specific and well known cases this is entirely sufficient, and it avoids the underflow issue entirely.

If we were to design the perfect type for representing a size or length it would hold the maximum value of an unsigned int, but would not undeflow to max unsigned int, instead it would truncate.

This type would have to be built on top of the existing primitives and would therefore be less performant, which is a shame and likely the reason it doesn't already exist.

R

--
Using Opera's revolutionary email client: http://www.opera.com/mail/

Reply via email to