在stackoverflow问题:“带有零参数和逗号的变体宏”之后,我尝试了:
#define MAKE_TEMPLATE(...) template <typename T, ## __VA_ARGS__ >
MAKE_TEMPLATE()
struct Testing{};
编译器给出:错误:'&gt;'之前的预期标识符令牌
但 g ++ -E main.cpp (以获得宏扩展)显示:
template <typename T >
struct Testing{};
并且:
MAKE_TEMPLATE(typename U)
struct Testing{};
编译好。 什么不见了?