Major performance problem with std.array.front()

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Mar 7 17:23:32 PST 2014


On 3/7/14, 1:58 PM, Vladimir Panteleev wrote:
> On Friday, 7 March 2014 at 21:56:45 UTC, Eyrk wrote:
>> On Friday, 7 March 2014 at 20:43:45 UTC, Vladimir Panteleev wrote:
>>> No, it doesn't.
>>>
>>> import std.algorithm;
>>>
>>> void main()
>>> {
>>>    auto s = "cassé";
>>>    assert(s.canFind('é'));
>>> }
>>>
>>
>> Hm, I'm not following? Works perfectly fine on my system?
>
> Something's messing with your Unicode. Try downloading and compiling
> this file:
> http://dump.thecybershadow.net/6f82ea151c1a00835cbcf5baaace2801/test.d

Yup, the grapheme issue. This should work.

import std.algorithm, std.uni;

void main()
{
     auto s = "cassé";
     assert(s.byGrapheme.canFind('é'));
}

It doesn't compile, seems like a library bug.

Graphemes are the next level of Nirvana above code points, but that 
doesn't mean it's graphemes or nothing.


Andrei



More information about the Digitalmars-d mailing list