how far C++ has come in .. oh heck, it's been 22 years since that article was written! Modern (C++11 and newer) approaches to solving this problem are made much better by language advances like variadic templates (no need to supply one template for each different number of arguments!), perfect forwarding, and of course lambdas.