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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLion无法解析类型std :: unordered_map,即使它提示我包含标题和编译工作相关的知识,希望对你有一定的参考价值。

出于某种原因,我的CLion无法识别std::unordered_map,尽管它实际上建议我在我第一次写出类型定义时包含Alt+Enter的标题。在我包含#include <unordered_map>的标题后,编译也可以。

我甚至可以按住Ctrl +单击include行来查找头文件,但我无法点击类型定义行(保持红色)。我不明白为什么IDE一直拒绝识别代码中的类型。

实际上,它建议我加入bits/unordered_map.h。我可以在unodered_map.h/usr/include/c++/7.3.1/unordered_map找到/usr/include/c++/7.3.1/bits/unordered_map.h。我不确定这两者之间有什么区别。包括其中之一或两者都不能解决问题。

我已经在我的-std=c++11中添加了CMAKE_CXX_FLAGSCMakeLists.txt

CLion 2018.1,gcc 7.3.1,Arch Linux。

答案

坏消息:这是CLion issue

好消息:它是固定的。请尝试使用CLion 2018.1.1 EAP。这个问题应该在其中修复。

这是相关的problem

另一答案

我不知道CLion但是在Eclipse Luna中使用TDM-GCC作为编译器这些错误通常是因为项目没有构建而引起的。还要验证unordered_map确实位于项目的/ include文件夹中。您还可以包含更高的标准标志,例如-std = c ++ 14。

希望这可以帮助!

以上是关于CLion无法解析类型std :: unordered_map,即使它提示我包含标题和编译工作的主要内容,如果未能解决你的问题,请参考以下文章

无法专门化std :: hash来存储unordered_map中的自定义类型

为啥 std::unordered_set 不将 CComBSTR 类型作为键?

std::unordered_map::find 使用不同于 Key 类型的类型?

在 std::unordered_map 中存储指向不同类型类的指针

g++5 中 std::unordered_set 编译错误的不完整类型,在 clang++ 中编译

std::hash 特化仍未被 std::unordered_map 使用