海湾合作委员会在宏

时间:2016-05-04 07:02:56

标签: c++ compiler-errors macros

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

  

预期';'之前'('令牌

带有指令#34的字符串中的

;使用"。

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

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

如果我将__VA_ARGS__更改为int,则表示没有错误。如果有必要,我会使用GCC(g++)编译器。

1 个答案:

答案 0 :(得分:3)

您的代码有3个问题:

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

    如果你解决了这些问题,那么它编译得很好(gcc 4.9.2)。