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.
std.utf.code_length - multiple declarations
- Function codeLength
- Function codeLength
Function codeLength
Returns the number of code units that are required to encode the code point
when cC is the character type used to encode it.
Prototype
ubyte codeLength(C)( dchar c ) pure nothrow @nogc @safe if (isSomeChar!C);
Example
assert(codeLength!char('a') == 1);
assert(codeLength!wchar('a') == 1);
assert(codeLength!dchar('a') == 1);
assert(codeLength!char('\U0010FFFF') == 4);
assert(codeLength!wchar('\U0010FFFF') == 2);
assert(codeLength!dchar('\U0010FFFF') == 1);
Function codeLength
Returns the number of code units that are required to encode str
in a string whose character type is C. This is particularly useful
when slicing one string with the length of another and the two string
types use different character types.
Prototype
size_t codeLength(C, InputRange)( InputRange input ) if (isInputRange!InputRange && is(ElementType!InputRange : dchar));
Example
import std.conv : to; assert(codeLength!char("hello world") == to!string("hello world").length); assert(codeLength!wchar("hello world") == to!wstring("hello world").length); assert(codeLength!dchar("hello world") == to!dstring("hello world").length); assert(codeLength!char(プログラミング) == to!string(プログラミング).length); assert(codeLength!wchar(プログラミング) == to!wstring(プログラミング).length); assert(codeLength!dchar(プログラミング) == to!dstring(プログラミング).length); string haystack =Être sans la verité, ça, ce ne serait pas bien.; wstring needle =Être sans la verité; assert(haystack[codeLength!char(needle) .. $] ==ça, ce ne serait pas bien.);
Authors
Walter Bright and Jonathan M Davis