On 3/8/14, 12:14 AM, Dmitry Olshansky wrote:
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.
Why? Couldn't the grapheme 'compare true with the character? I.e. the
byGrapheme iteration normalizes on the fly.
Andrei