简体   繁体   English

c ++ Variadic宏编译错误

[英]c++ Variadic Macro Compile error

Following the stackoverflow question: "Variadic macros with zero arguments, and commas", I tried: 在stackoverflow问题之后:“使用零参数的可变宏和逗号”,我试过:

#define MAKE_TEMPLATE(...) template <typename T, ## __VA_ARGS__ >

MAKE_TEMPLATE()
struct Testing{};

Compiler gives: error: expected identifier before '>' token 编译器给出: 错误:'>'令牌之前的预期标识符

But g++ -E main.cpp (to get macro expansion) show: 但是g ++ -E main.cpp (得到宏扩展)显示:

template <typename T >
struct Testing{};

And with: 与:

MAKE_TEMPLATE(typename U)
struct Testing{};

It compile OK. 它编译好了。 Whats missing? 缺少了什么?

http://en.wikipedia.org/wiki/Variadic_macro:GCC支持以下(非便携式)扩展: ## __VA_ARGS__

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM