Understanding Templates: why can't anybody do it?

Paulo Pinto pjmlp at progtools.org
Sat Mar 17 12:14:10 PDT 2012


Maybe you should first try to learn some concepts about generic programming

http://en.wikipedia.org/wiki/Generic_programming

You will see this is nothing specific to C++ or D, and almost
all modern languages do have some form of genericity.

If you still cannot understand them, you cold try to explain why
you have difficulties understanding this concept, and we could
try to explain them to you. Even improve D's documentation.

--
Paulo

Am 17.03.2012 18:14, schrieb Entity325:
> (Sorry if this is the wrong place for this, or if there's already a
> thread in existence which would be better. If either of these is the
> case, simply point me in the right direction, and I'll be on my way.)
>
> My first interaction with Templates was about 5 years ago, in a C++
> class at my university. I immediately thought "A general type? This
> would be great for my logger!" and tried to implement them into the
> small library I had been developing to save time on the class assignments.
>
> Naturally, I didn't understand them, so after a couple of half-hearted
> attempts, I gave up and went back to doing things the way I had before.
> I've avoided Templates since then, because they don't make any sense!
>
> 5 years later, enter D. In the process of trying to teach myself some D,
> I've found myself with a library of Structs for which the operator
> overloading features are extremely handy.
>
> Teensy problem here: the documentation on how to use operators makes use
> of Template types in the examples.
>
> Having developed a bit more analytical skill and tenacity in the
> intervening years, I resolved to actually figure the mess out this time.
> I have come to a conclusion.
>
> The reason nobody understands Templates is that nobody understands them.
>
> That is to say, nobody understands how Templates work is because, as was
> the case for me, the sum total of explanation we are given on them in
> programming class is "These are Templates. They exist. They look
> something like this."
>
> Even the (quite thorough) documentation for the D language reference
> isn't immune to this, if we take a look.
> (http://dlang.org/template.html) As you can see, the page more or less
> starts off with "--And here are some cool things you can do with
> templates."
>
> Wait, what? I feel like I've started watching Primer 20 minutes before
> the end, without anybody telling me what's going on.
>
> Herein, I think, lies the root of the reason why nobody understands
> Templates. I think the solution to this problem is not to comfort
> programming students by saying "Don't worry, nobody understands
> Templates." I think it's time we collectively figured out what they are.
> That done, we can overhaul the way new programmers learn how to use them.
>
> Who's with me? Anybody have a short(but COMPLETE!) example of code that
> makes use of Templates that you actually understand what's going on there?



More information about the Digitalmars-d mailing list