bind不是std的成员

时间:2013-01-10 15:11:34

标签: c++

我正在使用带有minwg编译器的netbeans 7.2.1。我在尝试构建应用程序时收到以下错误消息:

  

错误:命名空间'std'中的'function'没有命名类型

     

错误:'bind'不是'std'的成员

虽然我在文件的开头包含了functional.h,我使用'function'和'bind'的形式为:std :: function和std :: bind

问题出在哪里?是在编译器中还是缺少某些东西?我记得我在visual studio 2010上成功编译并运行了相同的应用程序。

3 个答案:

答案 0 :(得分:11)

不是functional.h,只是functional

#include <functional> //without .h

请注意std::functionstd::bind仅限C ++ 11。因此,如果还没有完成,可能需要升级编译器。

另外,使用-std=c++11选项编译代码:

$ g++ -std=c++11 file.cpp

如果您升级了编译器,这应该可以工作。如果您的编译器有点旧,您也可以尝试使用-std=c++0x

答案 1 :(得分:5)

您需要包含标题functional。它可以在C++11中找到。如果您仍然遇到问题,那么您的编译器可能还不支持C ++ 11。尝试升级。

答案 2 :(得分:1)

您也可以使用boost :: bind:

#include <boost/bind.hpp>