Hi Ben,
Macros don't honor things like () or {} or <> (i.e., templates) for whether
a comma is considered for the preprocessor's consumption, or as part of the
macro's parameter. All your commas are belong to us.
Macro magic is powerful voodoo. Should be used sparingly, and with
trepidation.
Best avoided when possible. Indispensable when really needed.
--Eljay