Slides from my ACCU Silicon Valley talk

Walter Bright newshound2 at digitalmars.com
Tue Dec 14 00:23:58 PST 2010


bearophile wrote:
> Andrei:
> 
>> D's constrained templates were introduced on 17 June 2008 and they've been
>> a smashing hit. Virtually all of Phobos uses them, and I'm sure a lot of
>> generic client code. They take half a minute to explain and solve a
>> difficult problem in a very simple manner.<
> 
> A template with two constrains makes it less handy to add error messages that
> explain why the instantiation has failed:

Adding such error messages misses the point of constraints. The idea is that 
template overloading is based on constraints. Given 3 templates with 3 
constraints, overload resolution picks the one with constraints that pass. 
Giving error messages for the others is wrong.

If you want it to produce error messages if the instantiation is wrong, the 
correct way is to use static asserts within the template body. No additional 
features serve any purpose.


More information about the Digitalmars-d mailing list