I would just address your concern of the code bloat part. I believe it is actually unfounded. I have briefly explained in my previous comment why I believe that. I can even confirm that because I had already done the unit test before submitting the patch. In my test it showed that the generated assembly code from the variadic template (when fully optimized using -O3) had resolved all the recursive calls and all the functions were being inlined as if I had written all the boilerplate code by hand.
YaoWT - Leave no window unbroken ♪ (^｡^)