gpt4 book ai didi

c++ - GCC 不将 __VA_ARGS__ 视为宏中的参数

转载 作者:行者123 更新时间:2023-11-30 02:31:54 25 4
gpt4 key购买 nike

我有下一个代码,它会抛出一个错误

expected ';' before '(' token

在带有指令“using”的字符串中。

#define D1(Name, ... ) \
class Name##Postfix \
{ \
using A1 = void (*)(__VA_ARGS__); \
};

int main()
{
D1(test, test1);
}

如果我将 __VA_ARGS__ 更改为 int,则不会出现错误。如果需要,我正在使用 GCC (g++) 编译器。

最佳答案

您的代码有 3 个问题:

  1. test1 不是类型
  2. “using A1”行中反斜杠后的空格(警告)
  3. 仅从 C++11 开始支持使用 作为类型别名

如果您解决了这些问题,那么它可以正常编译 (gcc 4.9.2)。

关于c++ - GCC 不将 __VA_ARGS__ 视为宏中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37020666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com