error: macro "min" passed 3 arguments, but takes just 2 error: expected ‘)’ before ‘const’ 解决方法
来源:互联网 发布:如何申请淘宝图片保护 编辑:程序博客网 时间:2024/06/06 03:17
最近在ubuntu下编译一个c++的solution,好几个project都得到如下的奇怪错误:
In file included from /usr/include/c++/4.6/bits/char_traits.h:41:0,
from /usr/include/c++/4.6/ios:41,
from /usr/include/c++/4.6/istream:40,
from /share1/linux_1579/include/ospace/std/istream:13,
from /share1/linux_1579/include/ospace/osstd/iterator.h:20,
from /share1/linux_1579/include/ospace/osstd/list.h:16,
from /share1/linux_1579/include/ospace/std/list:15,
from ../../include/LrwVUserVars.h:70,
from ../../include/LrwLogicMgrUtil.h:19,
from LrwLogicMgrUtil.cpp:6:
/usr/include/c++/4.6/bits/stl_algobase.h:233:56: error: macro "min" passed 3 arguments, but takes just 2
/usr/include/c++/4.6/bits/stl_algobase.h:254:56: error: macro "max" passed 3 arguments, but takes just 2In file included from /usr/include/c++/4.6/bits/char_traits.h:41:0,
from /usr/include/c++/4.6/ios:41,
from /usr/include/c++/4.6/istream:40,
from /share1/linux_1579/include/ospace/std/istream:13,
from /share1/linux_1579/include/ospace/osstd/iterator.h:20,
from /share1/linux_1579/include/ospace/osstd/list.h:16,
from /share1/linux_1579/include/ospace/std/list:15,
from ../../include/LrwVUserVars.h:70,
from ../../include/LrwLogicMgrUtil.h:19,
from LrwLogicMgrUtil.cpp:6:
/usr/include/c++/4.6/bits/stl_algobase.h:187:5: error: expected unqualified-id before ‘const’
/usr/include/c++/4.6/bits/stl_algobase.h:187:5: error: expected ‘)’ before ‘const’
/usr/include/c++/4.6/bits/stl_algobase.h:187:5: error: expected initializer before ‘const’
/usr/include/c++/4.6/bits/stl_algobase.h:210:5: error: expected unqualified-id before ‘const’
/usr/include/c++/4.6/bits/stl_algobase.h:210:5: error: expected ‘)’ before ‘const’
/usr/include/c++/4.6/bits/stl_algobase.h:210:5: error: expected initializer before ‘const’
/usr/include/c++/4.6/bits/stl_algobase.h:233:5: error: ‘std::min’ declared as an ‘inline’ variable
/usr/include/c++/4.6/bits/stl_algobase.h:233:5: error: template declaration of ‘const _Tp& std::min’
/usr/include/c++/4.6/bits/stl_algobase.h:236:7: error: expected primary-expression before ‘if’
/usr/include/c++/4.6/bits/stl_algobase.h:236:7: error: expected ‘}’ before ‘if’
/usr/include/c++/4.6/bits/stl_algobase.h:238:7: error: expected unqualified-id before ‘return’
/usr/include/c++/4.6/bits/stl_algobase.h:254:5: error: ‘max’ declared as an ‘inline’ variable
/usr/include/c++/4.6/bits/stl_algobase.h:254:5: error: template declaration of ‘const _Tp& max’
/usr/include/c++/4.6/bits/stl_algobase.h:257:7: error: expected primary-expression before ‘if’
/usr/include/c++/4.6/bits/stl_algobase.h:257:7: error: expected ‘}’ before ‘if’
/usr/include/c++/4.6/bits/stl_algobase.h:259:7: error: expected unqualified-id before ‘return’
/usr/include/c++/4.6/bits/stl_algobase.h:260:5: error: expected declaration before ‘}’ token
花了很多时间都没有找到解决方法。终于在网上找到一点线索,然后一点一点试找到了一个workaround。其实这个错误与代码本身或g++版本无关,只是因为出现了宏定义冲突:
所以只需把属于自己定义的相关头文件(比如上面的LrwVUserVars.h)中加入(最好加在自己的头文件引用和标准头文件的引用之间):
#include "LrwDomBase.h"
#include "LrwPostId.h"
//added by andy
#undef max
#undef min
#include <map>
#include <queue>
则这个问题就不会再出现了。
- error: macro "min" passed 3 arguments, but takes just 2 error: expected ‘)’ before ‘const’ 解决方法
- macro "min" passed 3 arguments, but takes just 2 min(const _Tp&, const _Tp&, _Compare);
- c++ complier errors:passed arguments, but takes just
- error: expected ';', ',' or ')' before '&' token 解决方法
- error :expected initializer before
- error: expected ')' before '*' token
- error: expected ‘)’ before ‘PRId64’
- error: expected ‘)’ before ‘PRIx64’
- 错误:error: expected class-name before '{' token解决方法
- error: expected ',' or '...' before numeric
- error: expected expression before 'struct'
- [Error] expected expression before '%' token
- error: expected initializer before ‘&’ token
- ERROR:expected initializer before "int"
- parsing error:expected ")" 解决方法
- error: expected identifier before 'using'| error: expected unqualified-id
- xcode4.2 error: expected a property attribute before 'strong'
- Error : (Serious) C2304E: expected but found 'void'
- android 源码下载及编译
- Bigdecimal的简单应用
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- C++程序设计实验报告《二》
- Linq 多条件查询DATATABLE数据时,报Linq Exception(NullReferenceException)错误
- error: macro "min" passed 3 arguments, but takes just 2 error: expected ‘)’ before ‘const’ 解决方法
- 第四周任务(四)
- 查找最小的k个元素(数组)
- Html5 Canvas初探学习笔记(2) -绘制深入
- VC 多线程编程
- JAVA方法重载和方法重写
- lua <--> c++
- 第五周任务(一)
- 蓝牙底层HCI驱动的实现