c++ __VA_OPT__未在Visual Studio中展开

cotxawn7  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(158)

我有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版本应该足够新。

mfpqipee

mfpqipee1#

__VA_OPT__是一个C++20特性,所以你需要/std:c++latest或至少/std:c++20(除了你已经在使用的/Zc:preprocessor之外)。

相关问题