我有MSVS 2019 19.29,我想使用__VA_OPT__
,但当我运行预处理器时,它似乎只是复制__VA_OPT__(,)
而没有扩展。
我的代码是:
#define M(X, ...) X __VA_OPT__(,) __VA_ARGS__
M(3) // expands to 3
M(3, 4) // expands to 3, 4
字符串
我用cl /TP /P opt. c/Zc:preprocessor编译,在opt.i中我发现
3 __VA_OPT__(,)
3 __VA_OPT__(,) 4
型
有没有什么窍门可以让这个功能发挥作用?
它说here我的MSVS版本应该足够新。
1条答案
按热度按时间mfpqipee1#
__VA_OPT__
是一个C++20特性,所以你需要/std:c++latest
或至少/std:c++20
(除了你已经在使用的/Zc:preprocessor
之外)。