【发布时间】:2018-12-07 09:02:04
【问题描述】:
我知道这是无效的
#define MACRO(x, ...) __VA_ARGS__
MACRO(5); // VA ARGS is empty, so is not good
但是,这有效吗?
#define MACRO(x, ...)
MACRO(5);
在 Wandbox 上,clang 给了我一个警告,gcc 没有,而在我的计算机上 MSVC 也没有。
【问题讨论】:
-
为什么不呢?你有tried compiling this吗?
-
我编辑了我的问题。我编译了:wandbox.org/permlink/8saJeC30jcHrAa0a 它确实编译了,但是,使用
-pedantic选项,我只会在 clang 上收到警告 -
好吧,我没有-(-1)-ed 你,但是-clang 正在给你答案。
-
@einpoklum 问题是 gcc 没有给我任何警告,msvc 也没有...这就是为什么我想知道它是否有效或者我是否必须等待
__VA_OPT__
标签: c++ c++11 c-preprocessor