符号“哈希”无法解析

时间:2016-03-08 00:59:46

标签: c++ eclipse std

我使用Eclipse作为IDE来开发C ++程序。

我宣布以下结构:

struct std::hash<SomeObject>;

但是,我收到了错误消息:

  

无法解析符号“哈希”

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您可能没有使用引入std::hash类型的C ++ 11。您可以将支持标记(-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>;