4

我正在为我的 C++ 编程课程分配一个涉及实现哈希映射的作业。我的导师给了我们一个头文件,我们需要将它与我们的哈希映射类一起使用。提供的头文件包含以下行:

typedef std::function<unsigned int(const std::string&)> HashFunction;

根据我对 C++ 的(有限)理解,这会将 HashFunction 类型定义为 std::function。但是,当我编译代码时,我得到了错误:

./HashMap.h:46:15: error: no type named 'function' in namespace 'std'
        typedef std::function<unsigned int(const std::string&)> HashFunction;
                ~~~~~^
./HashMap.h:46:23: error: expected member name or ';' after declaration specifiers
        typedef std::function<unsigned int(const std::string&)> HashFunction;
        ~~~~~~~~~~~~~~~~~~~~~^

HashMap.h 文件有

#include <functional>

在顶部,如果重要的话。

有谁知道我为什么会收到这些错误?

4

2 回答 2

6

您需要一个具有(至少部分)C++11 支持的编译器。您使用的是哪个编译器?

于 2012-11-03T20:42:07.340 回答
0

只需添加:

配置 +=c++11

到 .pro 文件:)

于 2013-09-05T19:43:34.190 回答