gpt4 book ai didi

c++ - Variadic Macros 需要一个无意义的宏来让它工作吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:48:33 25 4
gpt4 key购买 nike

以下代码在 VC++ 2012 上没问题

#include <algorithm>    

#define MAX_OF_2(a,b) std::max(a,b)
#define FOO(a) a

// work
#define MAX2(...) FOO(MAX_OF_2(__VA_ARGS__))

// Not work
// #define MAX2(...) MAX_OF_2(__VA_ARGS__)

int main()
{
int i = MAX2(1,2);
}

如果不使用FOO 宏就无法编译。它显示 MAX_OF_2 的实际参数不足。为什么或编译器上有任何错误?

最佳答案

这是一个已知的 bug in msvc

在您的情况下,__VA_ARGS__ 被认为是一个需要扩展的宏。

关于c++ - Variadic Macros 需要一个无意义的宏来让它工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633694/

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