View source code Display the source code in std/utf.d from which this page was generated on github. 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. Page wiki View or edit the community-maintained wiki page associated with this page.

Template std.utf.byUTF

Iterate an input range of characters by char type C.

UTF sequences that cannot be converted to UTF-8 are replaced by U+FFFD per "5.22 Best Practice for U+FFFD Substitution" of the Unicode Standard 6.2. Hence byUTF is not symmetric. This algorithm is lazy, and does not allocate memory. Purity, nothrow, and safety are inferred from the r parameter.

Arguments

template byUTF(C);

Parameters

NameDescription
C char, wchar, or dchar
r input range of characters, or array of characters

Returns

input range of type C

Example

foreach (c; "h".byUTF!char())
    assert(c == 'h');
foreach (c; "h".byUTF!wchar())
    assert(c == 'h');
foreach (c; "h".byUTF!dchar())
    assert(c == 'h');

Authors

Walter Bright and Jonathan M Davis

License

Boost License 1.0.

Comments