包含头文件unordered_map时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包含头文件unordered_map时出错相关的知识,希望对你有一定的参考价值。

当我在我的代码中包含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()代替。

另一答案

找出max()定义来自哪里,如果它在你自己的代码中你应该删除它,如果它在系统头中尝试移动包括直到之后

以上是关于包含头文件unordered_map时出错的主要内容,如果未能解决你的问题,请参考以下文章

当我在 C++ 中不包含字符串头文件时出错

CLion无法解析类型std :: unordered_map,即使它提示我包含标题和编译工作

使用 unordered_map 值初始化指向向量的指针时出错

在 4.0.4 中删除包含 videoView 的片段时出错

Android Studio:膨胀类片段时出错

在 unordered_map Boost 中插入模板值时出错