CTFE Status

Dmitry Olshansky via Digitalmars-d digitalmars-d at puremagic.com
Sun Jan 29 05:18:11 PST 2017


On 1/29/17 3:52 AM, Stefan Koch wrote:
> On Sunday, 29 January 2017 at 02:46:16 UTC, pineapple wrote:
>> On Sunday, 29 January 2017 at 02:17:12 UTC, Stefan Koch wrote:
>>> Also my ctfe engine still requires utf8 support, for string-foreach.
>>> [ ... ]
>
>> Can you clarify what string-foreach refers to? Surely not `foreach(ch;
>> some_string){}`, which enumerates code units and not code points?
>
> Yes exactly that. many times in phobos foreach(dchar ch; some_string)
> which requires me to encode the utf8 string temporarily into utf32
> and then when it is appending to some other string I need to reencode it
> into utf8.
>

Why encode the whole string to utf32? You can lower it to use 
std.utf.decode in a loop.

Essentially this:

foreach(dchar ch; some_string){ ... }

Becomes:

import std.utf;
size_t i=0;
while(i<some_string.length){
	dchar ch = decode(some_string, i);
	...
}

---
Dmitry Olshansky


More information about the Digitalmars-d mailing list