Documentation: example no longer compiles
Denton Cockburn
diboss at hotmail.com
Thu Feb 28 17:55:32 PST 2008
This example found at
http://www.digitalmars.com/d/2.0/templates-revisited.html no longer
compiles in 2.011:
template decimalDigit(int n) // [3]
{
const char[] decimalDigit = "0123456789"[n..n+1];
}
template itoa(long n)
{
static if (n < 0)
const char[] itoa = "-" ~ itoa!(-n);
else static if (n < 10)
const char[] itoa = decimalDigit!(n);
else
const char[] itoa = itoa!(n/10L) ~ decimalDigit!(n%10L);
}
char[] foo()
{
return itoa!(264); // returns "264"
}
the fix is to change the signature of 'char[] foo()' to const(char[]) foo()
More information about the Digitalmars-d-bugs
mailing list