社区
C++ 语言
帖子详情
boost::bind和boost::lambda::bind有啥区别?
BlueprintIrene
2010-10-05 10:50:49
RT
谢谢
...全文
380
5
打赏
收藏
boost::bind和boost::lambda::bind有啥区别?
RT 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yshuise
2011-02-19
打赏
举报
回复
“超越c++标准库”上面有讲。我遇到过只能用lambda的情况。
yshuise
2011-02-19
打赏
举报
回复
有时候两个用都可以,有时候只能用lambda::bind
gules
2010-10-06
打赏
举报
回复
boost::bind是标准程序库std::bind1st与std::bind2nd的一般化;
而boost::lambda::bind是一个表达式,用于生成lambda的functor。
细节请查阅boost的文档。
yshuise
2010-10-06
打赏
举报
回复
有lambda那个,显然可以用lambda,比如:
for_each(, , boost::bind(&status::report, _1));
BlueprintIrene
2010-10-06
打赏
举报
回复
我的意思是,在某些情况下,能用boost::lambda::bind的地方也能用boost::bind。比如:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <boost/bind.hpp>
#include <boost/lambda/bind.hpp>
void print(const std::string& prefix, const std::string& text) {
std::cout << prefix << "::" << text << "\n";
}
int main()
{
std::vector<std::string> vec;
vec.push_back("tuple");
vec.push_back("bind");
vec.push_back("lambda");
for_each(vec.begin(), vec.end(), boost::bind(&print, "boost", _1));
for_each(vec.begin(), vec.end(), boost::lambda::bind(&print, "boost", boost::lambda::_1));
}
最后两条语句的输出结果是一样的。
这种时候,用哪个bind好呢?
另外,什么时候该用boost::bind,什么时候该用boost::lambda::bind?
c++
boost
bind
例如,假设有一个接受两个整数并返回它们之和的函数`add(int a, int b)`,我们可以这样使用`
boost
::
bind
`: ```cpp #include <
boost
/
bind
.hpp> int add(int a, int b) { return a + b; } // 绑定第一个参数,第...
基于
boost
的
bind
与function的消息处理框架
在IT领域,
Boost
库是一个非常重要的C++工具集,它为C++标准库提供了许多扩展功能,其中`
bind
`和`function`是两个非常实用的工具。本文将深入探讨这两个概念以及如何在消息处理框架中使用它们。 首先,让我们了解`...
boost
完美组合(你不用再找其他的
boost
书籍了)
`
boost
::
bind
`和`
boost
::function`提供了函数对象和函数指针的通用接口;`
boost
::spirit`则是一个强大的解析器库,用于构建复杂语法解析器。 3. **
boost
-thread.pdf**:
Boost
.Thread库是C++线程编程的重要资源,...
boost
最新官方帮助文档1.56.0
2. **算法与函数**:
Boost
包含各种算法,如迭代器算法(`
boost
::algorithm`)、元编程函数库(`
boost
::mpl`)以及函数对象和适配器(如`
boost
::
bind
`和`
boost
::
lambda
`)。这些工具极大地扩展了C++的标准库功能。 3...
Boost
视频教程
- **知识点**:
Boost
.
Lambda
和
Boost
.
Bind
为C++提供了强大的函数式编程能力。 - **应用技巧**: - 利用`
boost
::
lambda
`快速定义简单的匿名函数,简化代码。 - 通过`
boost
::
bind
`绑定函数参数,创建新的可调用对象。...
C++ 语言
65,206
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章