unordered_map emplace 编译错误

unordered_map emplace compile error

我在 myclass.h 文件中有以下代码:

typedef std::unordered_set< int, int> Parameters;
class MyClass
{
    public:
        void myFunction();
    private:
        Parameters* m_params;
}

然后,myFunction 看起来如下:

void MyClass::myFunction()
{
    ...
    m_params->emplace(1,1);
}

当我尝试编译时,我得到:

term 不计算为带 1 个参数的函数

如果我注释 emplace 行,错误就会消失。但是,我没有发现与此函数签名相关的任何滥用: http://en.cppreference.com/w/cpp/container/unordered_map/emplace

如有任何帮助,我们将不胜感激。

简单的拼写错误:您在代码中使用了 std::unordered_set,但您的意思是 std::unordered_map

您的实施无法识别 std::unordered_set 模板中 Hashint 的任何错误设置,直到您尝试将某些内容放入容器中。然后它尝试对输入进行哈希处理,并意识到它不能将 int 用作函数。