Major performance problem with std.array.front()
Dmitry Olshansky
dmitry.olsh at gmail.com
Sat Mar 8 07:56:02 PST 2014
08-Mar-2014 19:32, Andrei Alexandrescu пишет:
> On 3/8/14, 12:09 AM, Dmitry Olshansky wrote:
>> 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.
>
> Yah but I think they should support comparison with individual
> characters. No?
>
We could add one. I don't think Grapheme interface is optimal or set in
stone.
The following should work as is though:
s.byGrapheme.canFind(Grapheme("é"))
> Andrei
>
--
Dmitry Olshansky
More information about the Digitalmars-d
mailing list