且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在没有括号的宏中使用逗号:如何与模板混合和匹配?

更新时间:2023-02-18 16:23:57

#define COMMA ,
ECHO(template<int COMMA bool>)

有点痛,但很管用.

FWIW,如果参数的语法允许 ()s,则不需要替换,例如,

FWIW, if the syntax for the argument allows ()s, you don't need the substitution, e.g.,

ECHO((a, b))

适用于单个参数宏,但不适用于所有情况(包括您的情况).

will work for a single argument macro but that doesn't work in all cases (including yours).