What's wrong with D's templates?

Yigal Chripun yigal100 at gmail.com
Mon Dec 21 12:53:49 PST 2009


On 21/12/2009 19:53, Walter Bright wrote:
> Don wrote:
>> The problem is, I'm not sure that it's feasible in general. At least,
>> it's not obvious how to do it.
>
> C++0x Concepts tried to do it in a limited form, and it got so
> complicated nobody could figure out how it was supposed to work and it
> capsized and sank.
>
> I don't think it's possible in the more general sense.

The C++0x Concepts tried to add two more levels to the type system:
template <typename T> ...
The T parameter would belong to a Concept "type", and they also added 
Concept maps whice are like concept Interfaces. Add to the mix backward 
compatibility (as always is the case in C++) and of course you'll get a 
huge complicated mess of special cases that no-one can comprehend.

But that doesn't mean the idea itself isn't valid. Perhaps a different 
language with different goals in mind can provide a much simpler non 
convoluted implementation and semantics for the same idea?
You've shown in the past that you're willing to break backward 
compatibility in the name of progress and experiment with new ideas. You 
can make decisions that the C++ committee will never approve.

Doesn't that mean that this is at least worth a shot?



More information about the Digitalmars-d mailing list