为什么我的项目在命名空间std中找不到“function”?

时间:2014-02-19 05:15:44

标签: c++ objective-c objective-c++

我有以下代码:

@interface Model ()
{
    //...
    std::function<bool(CGFloat, CGFloat)> greaterThan;
    std::function<bool(CGFloat, CGFloat)> lesserThan;

    //...
}
@end

我原来的项目中的一切都运行良好。 我刚刚创建了一个新项目,并在两个文件之间拖放文件,在新项目中,我对以上两行有以下错误:

  

命名空间'std'

中没有名为'function'的类型

我不知道问题是什么 - 文件是.mm,为什么不能在名称空间std中找到函数?

1 个答案:

答案 0 :(得分:2)

#include <functional>添加到代码顶部。

还记得在编译器参数中使用-std = c ++ 0x(或等效);这将启用std::function所需的C ++ 11标准。