How to do Generic Programming in D?

Nick Sabalausky a at a.a
Tue Feb 22 11:59:55 PST 2011


"Nick" <nick at example.com> wrote in message 
news:ik11ot$2fms$1 at digitalmars.com...
> Coming from Andrei's work in C++ "Modern C++ Programming" I wonder how to 
> implement many of those patterns in D?
>
> In C++ I would work with type lists and use lots of multiple inheritance 
> and templates to get the magic I need.
>

I abandoned C++ about 10 years ago so I don't know anything about the 
patterns you're talking about, but:

> D lacks MI,

Replaced by either mixins or interfaces, depending on what you're trying to 
do.

> classes and delegates seem heavy (allocated on heap, with one extra 
> pointer and new for each delegate)

IIRC, non-heap-based value-semantics classes are kind of rare in C++. If you 
want a value-semantics "class" in D, you use a struct. You give up the 
ability to subclass, but I've heard there are major problems combining 
inheritence with value-semantics even in C++ anyway.

> I guess I am looking for some code&examples to read to "get" GP in D. A 
> bit like "Modern C++ Programming".
>

If by "GP" you mean generic programming, then the primary mechanisms for 
that in D are CTFE (compile-time function execution), templates and 
string/template mixins.




More information about the Digitalmars-d mailing list