std.string and std.algorithm: what to do?
doob at me.com
Thu May 14 11:22:29 PDT 2009
Andrei Alexandrescu wrote:
> dsimcha wrote:
>> == Quote from Andrei Alexandrescu (SeeWebsiteForEmail at erdani.org)'s
>>> I'm not sure what needs to be done about the combo string + algorithm.
>>> There's quite some overlap, and also functions that have the same name
>>> in both modules (e.g. find()), which forces you to disambiguate.
>>> Should std.algorithm automatically recognize strings and proceed
>>> accordingly, should it just consider them straight arrays and leave
>>> everything else to std.string (risky!), or refuse to handle strings?
>> I like the idea of automatically specializing on strings, at least on
>> the surface.
>> It's less to remember for the programmer, less annoying naming
>> collisions, and
>> stuff "just works". You get your generic std.algorithm stuff when you
>> need it and
>> your more optimized/variable length character encoding stuff when you
>> need it
>> without having to explicitly specify which one you want.
> Cool! So then how do I rename find, ifind, rfind, and irfind in std.string?
Like others I think the names should be:
find -> indexOf
rfind -> lastIndexOf
but I think the declaration should look like this:
size_t indexOf (string s, dchar d, size_t start = 0)
perhaps an argument for case sensitive also:
size_t indexOf (string s, dchar d, size_t start = 0, bool caseSensitive
More information about the Digitalmars-d