Function String.byCodePoint

ByCodePoint!(char) byCodePoint() pure nothrow @nogc @trusted;

ByCodePoint!(const(char)) byCodePoint() pure nothrow @nogc @trusted const;

Returns

Forward range that iterates over the string by code points.

Example

auto s = String("Мне есть, что спеть, представ перед Всевышним.");
auto cp = s.byCodePoint();
assert(cp.front == 'М');
cp.popFront();
assert(cp.front == 'н');

s = String("€");
cp = s.byCodePoint();
assert(cp.front == '€');
assert(s.length == 3);

s = String("\U00024B62");
cp = s.byCodePoint();
assert(cp.front == '\U00024B62');
assert(s.length == 4);

Example

auto s = const String("Высоцкий");
auto cp1 = s.byCodePoint();
assert(cp1.front == 'В');

auto cp2 = cp1[];
cp1.popFront();
assert(cp1.front == 'ы');
assert(cp2.front == 'В');

cp2 = cp1.save();
cp1.popFront();
assert(cp1.front == 'с');
assert(cp2.front == 'ы');