我有以下代码:
@interface Model ()
{
//...
std::function<bool(CGFloat, CGFloat)> greaterThan;
std::function<bool(CGFloat, CGFloat)> lesserThan;
//...
}
@end
我原来的项目中的一切都运行良好。 我刚刚创建了一个新项目,并在两个文件之间拖放文件,在新项目中,我对以上两行有以下错误:
命名空间'std'
中没有名为'function'的类型
我不知道问题是什么 - 文件是.mm,为什么不能在名称空间std中找到函数?
答案 0 :(得分:2)
将#include <functional>
添加到代码顶部。
还记得在编译器参数中使用-std = c ++ 0x(或等效);这将启用std::function
所需的C ++ 11标准。