c++ - c++ : #define MBGL_DEFINE_ENUM(T, 值中的省略号是什么...)?

标签 c++ syntax macros

在尝试使用 msvc 2017 构建 mapboxgl-native 时,我在他们的 enum.hpp 中遇到以下构造错误

#define MBGL_DEFINE_ENUM(T, values...)

这个宏的用法类似this

我找不到此 C++ 语法的文档。

哪个版本的 c++ 定义了这个省略号结构?怎么称呼?

最佳答案

这不是标准的 C++。标准方式不会命名省略号。 It's a GCC extension .

标准 C++ 中的可变参数宏看起来有点像这样:

#define foo(arg, ...) arg __VA_ARGS__

其中 __VA_ARGS__ 代表省略号中的所有参数。

关于c++ - c++ : #define MBGL_DEFINE_ENUM(T, 值中的省略号是什么...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47737628/

相关文章:

google-chrome - Chrome 开发者控制台无法运行 JS 循环

c++ - 静态变量情况下的内存分配

c++ - SSE 半负载 (_mm_loadh_pi/_mm_loadl_pi) 发出警告

python : 'import module' vs 'import module as'

C结构语法

macros - 如何建立在宏展开期间处于事件状态的变量绑定(bind)?

c - 如何在 OR 条件下使用#ifdef?

c++ - 具有可变参数的嵌套宏在 GCC 中编译但在 MSVC 中不编译

c++ - RPC:xdr_bytes "Can' t 编码参数“当数组太大时

c++ - QT错误: cannot find libs