Flexible C++
My approach to software engineering is far more pragmatic than it is theoretical, and I've no doubt that this column will reflect that. (That's double-speak for "I don't know what I'm talking about half the time"!) It's my belief that all languages are imperfect, and that C++ is no exception.
Where C++ has the advantage over other languages is in its support for close-to-the bone efficiency (as we saw in the first solution [2]) and at the same time supporting the expression of high-level concepts. It also has its own built-in self-repair mechanism in its powerful (though still imperfect) templates mechanism.
So as well as providing you with some useful efficient code, the intent in this column is to share with you the various pros and cons of the solutions presented in the hope that you may find some of it illuminating. (There's not much point in having a column if you can't achieve that every now and then, one would think!)