由于 LLVM 错误,Xcode 无法编译

Xcode won't compile due to LLVM error

本文关键字:编译 Xcode LLVM 错误 由于      更新时间:2023-10-16

我正在尝试在xcode中编写C 程序。我的代码似乎没有任何问题,但是当我尝试编译时,我会收到以下错误:

Implicit instantiation of undefined template 'std::__1::hash<std::1::pair<unsigned long, unsigned long> >'

此错误显然是在LLVM的type_traits文件的第1008行中。我认为这是一个库错误,但是当我尝试编译一个简单的Hello World时,它可以正常工作。

有人知道我缺少什么吗?

std::pair没有std::hash专业化(或std::tuple)。这是C 标准最荒谬的功能之一,它削弱了库。

这可能是因为您使用std::pair作为unordered_map中的键。

您需要做的是包括Boost:<boost/functional/hash.hpp>,并将boost::hash<std::pair<X, Y>>声明为地图的第三模板参数。

直到std::hash固定,它几乎没有用。