__VA_OPT__未在 Visual Studio 中展开

__VA_OPT__ not expanded in Visual Studio

提问人:Pyjong 提问时间:11/17/2023 最后编辑:BoPPyjong 更新时间:11/17/2023 访问量:37

问:

我已经MSVS2019 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

有什么技巧可以使此功能起作用吗?

在这里说我的MSVS版本应该足够新。

C++ 可视化工作室

评论

1赞 HolyBlackCat 11/17/2023
/std:c++latest也许?或者至少是 C++20。
0赞 Pyjong 11/17/2023
@HolyBlackCat是的,这似乎可以解决问题。谢谢!

答:

2赞 HolyBlackCat 11/17/2023 #1

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