2016-03-08 67 views
1

我使用Eclipse作为IDE来开发C++程序。无法解析符号“hash”

我声明如下结构:

struct std::hash<SomeObject>;

但是,我得到的错误信息:符号“哈希”无法解析

任何人都可以帮我在这?

由于

+0

你已经在文件顶部有#include 了吗? –

+0

是的,包括在内 – xwang

回答

1

您可能不使用C++ 11,其引入的std::hash类型。您可以将支持标志(-std=c++11)添加到您的编译器选项,有关更多信息,请参阅this post

即使找到该符号,该行也不会按原样编译。 如果你正在声明一个实例,你需要给它一个名字,否则它认为你是前向声明一个类型。否则,您可以使用typedefusing来命名该类型。

#include <functional> 

// if you want to declare an instance 
struct std::hash<SomeObject> aHashInstance; 

// for types, one of: 
typedef std::hash<SomeObject> MyHash; 
using MyHash = std::hash<SomeObject>;