我正在爲我的C++編程類實現散列映射。我的教師給了我們一個頭文件,我們需要使用我們的哈希映射類。提供的頭文件包含以下行: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>
在頂部,如果它很重要。
有誰知道我爲什麼會得到這些錯誤?
這是C++ 11,這樣有可能有所作爲。 – chris
當編譯器支持仍然不完善時(至少需要一些專業知識才能找到支持您需要的支持的實現),才能看到一所學校在其作業中需要C++ 11。看起來它可能已經倒轉...... –