当我在代码中包含unordered_map头文件时,它会出现以下错误
"/usr/lib/gcc/armv7l-tizen-linux-gnueabi/6.2.1/include/c++/bits/hashtable.h:
In constructor 'std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal,
_H1, _H2, _Hash, _RehashPolicy, _Traits>::_Hashtable(_InputIterator,
_InputIterator, std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal,
_H1, _H2, _Hash, _RehashPolicy, _Traits>::size_type, const _H1&, const _H2&,
const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&)':
error: expected unqualified-id before '(' token
[ 29s] #define max(a, b) (((a) > (b)) ? (a) : (b))"
我确定没有语法错误。我认为宏和std :: unordered_map之间存在冲突,但我不知道如何解决这个问题。这里我包括在另一个文件包含的文件中的unordered_map,类似于定义了宏max的头文件也包含在同一文件中。
答案 0 :(得分:2)
是的,您的宏max()
和std::max()
功能之间存在冲突
解决方案应该很简单:删除max()
宏并改为使用std::max()
。
答案 1 :(得分:0)
弄清楚max()定义来自哪里,如果它在你自己的代码中你应该删除它,如果它在系统头中尝试移动包括直到
之后