View source code
Display the source code in std/uni.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function std.uni.byCodePoint

Lazily transform a range of Graphemes to a range of code points.

auto byCodePoint(Range) (
  Range range
)
if (isInputRange!Range && is(immutable(ElementType!Range) == immutable(Grapheme)));

auto byCodePoint(Range) (
  Range range
)
if (isInputRange!Range && is(immutable(ElementType!Range) == immutable(dchar)));

Useful for converting the result to a string after doing operations on graphemes.

If passed in a range of code points, returns a range with equivalent capabilities.

Example

import std.array : array;
import std.conv : text;
import std.range : retro;

string s = "noe\u0308l"; // noël

// reverse it and convert the result to a string
string reverse = s.byGrapheme
    .array
    .retro
    .byCodePoint
    .text;

assert(reverse == "le\u0308on"); // lëon

Authors

Dmitry Olshansky

License

Boost License 1.0.