首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在llvm libc++中缺少Hashtable类。

在llvm libc++中缺少Hashtable类。
EN

Stack Overflow用户
提问于 2019-01-02 14:35:08
回答 2查看 69关注 0票数 0

我正在将我的Android项目中的标准库从gnustl (libstdc++)迁移到llvm++。在其中一个项目中,我得到了丢失的头文件的多个错误,

代码语言:javascript
复制
  fatal error: 'hashtable.h' file not found
#include "hashtable.h"
         ^~~~~~~~~~~~~
clang++.exe: error: clang frontend command failed due to signal (use -v to see invocation)
Android clang version 5.0.300080  (based on LLVM 5.0.300080)

预处理后的文件输出显示该文件由gnustl提供。

代码语言:javascript
复制
.. f:/nugetcache/androidndk.16.1.1/sources/cxx-stl/gnu-libstdc++/4.9/include/backward\\hashtable.h

但是,在迁移到libc++之后,我无法在libc++中找到等效的标头。此头文件声明类HashTable。

代码语言:javascript
复制
template<class _Val, class _Key, class _HashFcn,
       class _ExtractKey, class _EqualKey, class _Alloc>
    class hashtable
    {...}

我尝试在libc++代码中搜索这个标头和这个类,但是找不到任何东西。我认为这是一个重要的类,必须由libc++以某种形式提供,但我无法识别它。

是否有人因这一差异而面临错误?建议的解决办法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-03 02:57:12

我尝试在libc++代码中搜索这个标头和这个类,但是找不到任何东西。我认为这是一个重要的类,必须由libc++以某种形式提供,但我无法识别它。

这是一个libstdc++扩展,从预C++11天遗留下来.

如果您查看内容这里,您将看到它在顶部有一个注释:这是一个内部头文件,包含在其他库头中。不要试图直接使用它。

票数 2
EN

Stack Overflow用户

发布于 2019-01-04 11:33:49

libc++不包含该头文件,并且包含针对不同类型映射的更具体的接口。

因此,@marshall指出了这一点是对的,因为他说我们根本不需要头球。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54008192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档