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.

std.uni.toUpper - multiple declarations

Function toUpper

If c is a Unicode lowercase character, then its uppercase equivalent is returned. Otherwise c is returned.

dchar toUpper (
  dchar c
) pure nothrow @nogc @safe;


Certain alphabets like German and Greek have no 1:1 upper-lower mapping. Use overload of toUpper which takes full string instead.

toUpper can be used as an argument to map to produce an algorithm that can convert a range of characters to upper case without allocating memory. A string can then be produced by using copy to send it to an appender.


import std.algorithm.iteration : map;
import std.algorithm.mutation : copy;
import std.array : appender;

auto abuf = appender!(char[])();
writeln(; // "HELLO"

Function toUpper

Allocates a new array which is identical to s except that all of its characters are converted to uppercase (by performing Unicode uppercase mapping). If none of s characters were affected, then s itself is returned if s is a string-like type.

ElementEncodingType!S[] toUpper(S) (
  scope return S s
) @trusted
if (isSomeString!S);

ElementEncodingType!S[] toUpper(S) (
  S s
if (!isSomeString!S && (isRandomAccessRange!S && hasLength!S && hasSlicing!S && isSomeChar!(ElementType!S)));


s A random access range of characters


An new array with the same element type as s.


Dmitry Olshansky


Boost License 1.0.