社区
C++ 语言
帖子详情
boost::bind和boost::lambda::bind有啥区别?
BlueprintIrene
2010-10-05 10:50:49
RT
谢谢
...全文
401
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?
boost
.asio系列(一)——deadline_timer
本文深入解析了
Boost
.Asio库中的Deadline Timer的构造、同步与异步定时器的
区别
,以及如何在实际代码中应用这些定时器功能。通过提供具体的代码示例,文章详细展示了如何创建和使用基本的同步与异步Deadline Timer,包括如何在异步定时器中利用
lambda
表达式和
bind
函数来生成回调函数,并强调了在
bind
操作中使用
boost
::ref的重要性。
ROS用
lambda
替代
boost
::
bind
本文介绍如何在ROS C++开发中使用
lambda
表达式替代传统的
boost
::
bind
,通过捕获this指针并显式接收goal参数,实现更现代、清晰的回调函数绑定方式。重点解析了
lambda
与
boost
::
bind
的等价关系、参数传递机制及常见陷阱,适用于Action Server场景。
关于
Boost
.
Lambda
本文围绕
Boost
.
Lambda
展开,展示了其精致优雅的使用示例,如打印vector和map。但在使用
bind
到map的find方法时编译出错,而
bind
到count方法却能成功。经验证发现是遇到constness重载时出问题,换用
Boost
.
Bind
可解决,拿掉特定命名空间改用
boost
命名空间代码也能运行,还提及C++0x未接纳
lambda
或与此有关。
关于
boost
中
lambda
表达式的学习
本文介绍C++中
Lambda
表达式与
Boost
.
Bind
的基本用法,包括容器元素操作、条件控制结构的应用,以及如何处理成员函数绑定等问题。
8月11日的
Boost
1.33,
bind
库存在的问题
本文探讨了一个关于
Boost
.
Bind
在处理临时对象时遇到的问题。在使用
Boost
.
Bind
进行成员函数绑定时,由于返回类型处理不当导致意外的行为。通过对比
Boost
.
Bind
与
Boost
.
Lambda
的不同表现,揭示了问题所在,并引用了Peter Dimov的解答。
C++ 语言
65,211
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章