One keeps the whole security discussion going on, while the other keeps an image that C++ is a language not worth learning.
C++ isn't great for for metaprogramming, because much of it is a hack that uses the type system to do things it was never originally designed to do (i.e. as a lisp). But as metaprogramming has become more commonplace, the language has evolved with features that make it easier and more readable. It's still all based on a hack, and there's still no good way to debug a metaprogram. But at least I don't have to read the loki book anymore to grok it.
I still prefer to use a proper code generator when I can (it compiles faster, and I can see the generated code). Generating an ordinary switch outside of C++ is certainly an option and is something I've done. But I don't reach for it every time, because those tools tend to be kludgy as well (they can generate invalid C++, which templates and comstexpr cannot).