在stackoverflow的问题“带有零个参数和逗号的变参宏”中,我尝试了以下代码:
#define MAKE_TEMPLATE(...) template <typename T, ## __VA_ARGS__ >
MAKE_TEMPLATE()
struct Testing{};
编译器报错: 错误:在'>'标记前需要标识符
但是g++ -E main.cpp(用于获取宏扩展) 显示:
template <typename T >
struct Testing{};
同时使用:
MAKE_TEMPLATE(typename U)
struct Testing{};
编译成功了,还缺什么吗?