All,

I have been following this discussion and I would like to just add a general point.  I have been trying to grok template metaprogramming off and on for a while now, and I think that the leap from object-oriented programming to template metaprogramming is a good deal larger than the leap from procedural programming to object-oriented programming.  It could be because I never had Lisp or Scheme in college that makes it more difficult, but I've read 'Modern C++ Design' and 'C++ Template Metaprogramming' a couple of times each (not really cover to cover, but close enough) and I still have a hard time putting my brain in metaprogramming mode.

So I guess the long and short of what I'm saying is that template metaprogramming is not something that beginning programmers will understand the utility of or even the mechanics of.

Jeremy