std.string and std.algorithm: what to do?
Steven Schveighoffer
schveiguy at yahoo.com
Thu May 14 13:59:32 PDT 2009
On Thu, 14 May 2009 16:51:27 -0400, Walter Bright
<newshound1 at digitalmars.com> wrote:
> Steven Schveighoffer wrote:
>> I could never understand the mentality of returning -1 versus end of
>> string.
>
> It's not -1, it's uint.max. The reason for returning that value is that
> it is the only integer value that can never be a valid index.
Pretty sure uint.max - 1 is also invalid (as well as a host of other
values) ;)
but in any case, it's much less useful than str.length, as you can't
directly use it, you simply have to check for it. If all you ever do is
check to see if it's a certain value, why does it have to be uint.max?
I guess I understand the mentality of picking -1 or uint.max as a
reasonable "failure" return, but what I don't understand is why you would
do so when you could use the length of the string, which is useful for
many other purposes. -1 or uint.max just is a failure, and needs to be
checked, it can't be used to do any slicing operations.
I always hated doing string processing with Java vs. C++ because of this.
-Steve
More information about the Digitalmars-d
mailing list