首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >宏中的编译错误

宏中的编译错误
EN

Stack Overflow用户
提问于 2011-05-09 16:03:29
回答 3查看 1.6K关注 0票数 2

我下载了jsvm软件,编译时遇到很多错误。其中很少有如下所示。

代码语言:javascript
复制
/usr/include/c++/4.3/bits/algorithmfwd.h:248:41: error: macro "max" passed 3 arguments, but takes just 2

文件algorithmfwd.h如下

代码语言:javascript
复制
 template<typename _Tp>
const _Tp&
min(const _Tp&, const _Tp&);
template<typename _Tp, typename _Compare>
const _Tp&
min(const _Tp&, const _Tp&, _Compare);

// min_element

EN

回答 3

Stack Overflow用户

发布于 2011-05-09 16:17:15

错误非常明显:

max /usr/include/c++/4.3/bits/algorithmfwd.h:248:41:错误:宏“

”传递了3个参数,但只接受2个参数

在包含这个特定的头文件之前,您已经定义了一个带有3个参数的宏max。宏是邪恶的,因为它们应用于标识符出现的任何地方。检查您在代码中定义该宏的位置并将其删除,或者至少将其更改为大写(宏的通用约定),这样它就不会在所有其他标头中展开。

票数 3
EN

Stack Overflow用户

发布于 2011-05-09 16:17:12

它看起来像是,除了algorithmfwd.h中的函数之外,还有一个也称为max的预处理器样式的宏。尝试找出是谁定义了这一点,并避免包括头文件,或者如果其他方法都失败了,则使用#undef max

票数 0
EN

Stack Overflow用户

发布于 2011-05-09 16:18:01

您没有显示最大宏。无论如何,您似乎正在尝试使用一个宏,该宏的参数比它预期的多一个。

我在编译时遇到了很多错误

试着按顺序解决你的错误,因为一个错误会影响下一个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5934145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档