On Friday, 28 February 2014 at 18:42:57 UTC, Steve Teale wrote:
All the D aficionados seem to wet their pants over
meta-programming, but I struggle to find a place to use it.

IIRC, I used it in a couple of places when I was trying to write
library stuff for MySQL, but in my current project, I use it only
once. That's when I want to stuff something onto my undo stack.

For that I have two template functions - push(T)(MybaseClass* p,
T t, int ID), and pushC, which is just the same except that it
checks the top of the stack to see if the ID there is the same as
what it is wanting to push.

This has served me very reliably, but I struggle to find other
places in the whole application where I would benefit from
templates.

Is this typical - libraries use templates, applications don't, or
am I just being unimaginative?

I use them for custom containers, configurations and the like,
which is the most obvious case -- when multiple types need to be
handled and I don't want to implement the same code for each
type. With my C and Java background (read, limited experience
with templates), it's been hard to recognize other uses. I was
ridiculously happy with myself recently when I realized I could
make my OpenGL vertex buffer code more flexible by using
templates and other compile time constructs to configure
different vertex formats, something that was rather non-obvious
to me before.

Reply via email to