Major performance problem with std.array.front()

Dmitry Olshansky dmitry.olsh at gmail.com
Sat Mar 8 00:14:13 PST 2014


08-Mar-2014 12:09, Dmitry Olshansky пишет:
> 08-Mar-2014 05:23, Andrei Alexandrescu пишет:
>> 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.
>
> Becasue Graphemes do not auto-magically convert to dchar and back? After
> all they are just small strings.
>
>>
>> Graphemes are the next level of Nirvana above code points, but that
>> doesn't mean it's graphemes or nothing.
>>

Plus it won't help the matters, you need both "é" and "cassé" to have 
the same normalization.


-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list