Ellery Newcomer Wrote: > I haven't gotten around to templates yet, so I don't grok them quite as > well as I'd like, but it looks like DMD is having trouble deducing T > from the parameter given. > > print([1,2,3]) fails to match the specialized template, even when the > general template is removed. > > If you force the template parameter, it does what you would expect: > > > print!(int)(3); > print!(int[3])([1,2,3]); > > > Calling print(T) > int > Calling print(T[]) > int > > Can't say whether this belongs in bugzilla or not. It might. > > On 01/31/2010 12:49 PM, daoryn wrote: > > > > > I expected it to output "calling print(T[])" on the second "print". Would > > this be a bug or did I misunderstand the template specialization? > > >
The whole point of specialisation (and of templates in general) is to have functions that work for any type. Having to forcibly specify a type is like casting to a specific overload of a function. Why add clutter to the syntax when the language advertises automatic type inference?
