最好是带参量传递和上下文的那种,谢谢啊
http://cplusplus.com/reference/algorithm/sort/
函数对象使用的典型例子,效率超过函数指针,因为函数指针不能内联
看下boost文档再问吧.
很多脚本,函数式语言实现的闭包 要求能自动绑定 当前作用域的局部变量. C++的函数对象无法做到. func() {
BIBAO_bianlian int i; return BIBAO_hanshu(); //不管这个BIBAO_hanshu怎么做, 旧的C++都不可能直接使用i, 并且出了func作用域还能继续用这个i;} 完美支持必包的 需要C++的 lambda表达式, 它实现在c++ 0x标准中. 不要求自动绑定局部变量的话, 普通的functor 以及boost的bind和function都能很好满足了. 可以阅读下boost的文档, 以及stl中的一些仿函数.
boost bind和function 完美组合
add100不就是个对象么?你可以这样用
struct AddSome {...}; int func(const AddSome &op, int v) { return op(v); } AddSome add100(100); std::cout << func(add100, 10);
这是个不动脑子的例子
struct AddSome { AddSome(int base) : base_(base) {} int operator()(int v) const { return v+base_; } int base_; }; AddSome add100(100); std::cout << add100(5);
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(8)
http://cplusplus.com/reference/algorithm/sort/
函数对象使用的典型例子,效率超过函数指针,因为函数指针不能内联
看下boost文档再问吧.
很多脚本,函数式语言实现的闭包 要求能自动绑定 当前作用域的局部变量. C++的函数对象无法做到.
func() {
BIBAO_bianlian int i;
return BIBAO_hanshu(); //不管这个BIBAO_hanshu怎么做, 旧的C++都不可能直接使用i, 并且出了func作用域还能继续用这个i;
}
完美支持必包的 需要C++的 lambda表达式, 它实现在c++ 0x标准中.
不要求自动绑定局部变量的话, 普通的functor 以及boost的bind和function都能很好满足了. 可以阅读下boost的文档, 以及stl中的一些仿函数.
很多脚本,函数式语言实现的闭包 要求能自动绑定 当前作用域的局部变量. C++的函数对象无法做到.
func() {
BIBAO_bianlian int i;
return BIBAO_hanshu(); //不管这个BIBAO_hanshu怎么做, 旧的C++都不可能直接使用i, 并且出了func作用域还能继续用这个i;
}
完美支持必包的 需要C++的 lambda表达式, 它实现在c++ 0x标准中.
不要求自动绑定局部变量的话, 普通的functor 以及boost的bind和function都能很好满足了. 可以阅读下boost的文档, 以及stl中的一些仿函数.
boost bind和function 完美组合
add100不就是个对象么?你可以这样用
这是个不动脑子的例子
这是个不动脑子的例子