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

Why can't my project find "function" in namespace std?

本文关键字:找不到 function std 我的 项目 命名空间 为什么      更新时间:2023-10-16

我有以下代码:

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

在我的原始项目中一切正常。我刚刚创建了一个新项目,并在两者之间拖放了文件,在新项目中,上述两行出现以下错误:

命名空间"std"中没有名为"函数"的类型

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

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

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