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
Name | Description |
---|---|
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