How do you use templates in D?

Jonathan M Davis jmdavisProg at gmx.com
Tue Oct 18 14:56:33 PDT 2011


On Tuesday, October 18, 2011 12:32 Ali Çehreli wrote:
> On Tue, 18 Oct 2011 13:56:09 -0400, Andrew Pennebaker wrote:
> > I'm writing a function called genArray that accepts a function gen and
> > returns a random array populated by calling gen(). genString builds on
> > this by returning genArray(&genChar). But my type signatures are wrong.
> > 
> > In dashcheck.d:
> > 
> > char genChar() {
> > 
> > return cast(char) uniform(0, 128);
> 
> It's a good thing that you are staying within ASCII. Otherwise there
> might be invalid UTF-8 sequences. :)

Yeah. It's generally a very bad sign when code uses char or wchar outside of 
arrays. They're UTF-8 and UTF-16 code units respectively and are not 
necessarily full code points (and therefore are not necessarily full 
characters). That's particularly true of char, since anything outside of ASCII 
is not going to work. Code which operates on individual characters really 
should be operating on dchars, not chars or wchars.

- Jonathan M Davis


More information about the Digitalmars-d mailing list