DMD 1.031 and 2.015 templates

Lars Ivar Igesund larsivar at igesund.net
Wed Jun 18 01:37:48 PDT 2008


Walter Bright wrote:

> Some new stuff to make writing templates easier.
> 
> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.030.zip

(Wrong zip link ^)

Something broke, probably due to the fix in 617 and/or 1383:

Given

T[] layout(T) (T[] output, T[][] layout ...)

the following code

T[] format(T) (T[] output, Time t) {

T[] convert (T[] tmp, long i)
{
    return Integer.formatter!(T) (tmp, i, 'u', 0, 8);
}

return layout (output, "%0, %1 %2 %3 %4:%5:%6 GMT", 
                            Days[date.dow],
                            convert (tmp[0..2], date.day),
                            Months[date.month-1],
                            convert (tmp[2..6], date.year),
                            convert (tmp[6..8], time.hours),
                            convert (tmp[8..10], time.minutes),
                            convert (tmp[10..12], time.seconds)
                           );
}

results in

:template layout(T) does not match any template declaration
:template layout(T) cannot deduce template function from argument types
(wchar[],char[25u],wchar[],wchar[],wchar[],wchar[],wchar[],wchar[],wchar[])

I tested adding w at the end of the literal, something that resulted in the
following message instead.

:template layout(T) cannot deduce template function from argument types
(char[],wchar[25u],char[],char[],char[],char[],char[],char[],char[])

In effect, the above makes this release unusable.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango


More information about the Digitalmars-d-announce mailing list