当我在代码中包含 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 的头文件也包含在同一文件中。
最佳答案
是的,您的宏 max()
和 std::max()
函数之间存在冲突。
解决方案应该很简单:删除 max()
宏并使用 std::max()
代替。
关于c++ - 包含头文件 unordered_map 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47881346/