注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

为着理想勇敢前进

 
 
 

日志

 
 

谈谈 Boost 1.34.0 新增的Boost.Foreach  

2007-04-10 07:50:31|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
我估计Boost 1.34.0发布以后,使用得最多的一个库大概就是Boost.Foreach了。Boost.Foreach怎么用,看到代码估计没有不清楚的:
std::string hello( "Hello, world!" );
BOOST_FOREACH( char ch, hello )
{
std::cout << ch;
}

short array_short[] = { 1, 2, 3 };
BOOST_FOREACH( short & i, array_short )
{
++i;
}
// array_short contains {2,3,4} here
这个库的介绍是“Make simple things easy.”,的确很贴切啊。说起来,boost的库基本上都有一个目的,就是让人完成一件事情所需要敲的代码最少(疑问,代码最少等于最简单吗?)。然而C++有一点很可恶,他的功能总是有的时候能用,有的时候不能用,有的时候和你想的用起来不一样。

比如说BOOST_FOREACH是基于宏的,你就不能写std::map<int,int> int_map; BOOST_FOREACH( std::pair<int, int>& i, int_map ){}这样的代码,因为宏要比模板先解释,所以std::pair<int,int>中间的逗号就把std::pair<int当成BOOST_FOREACH的一个参数了……相比之下,C#若是Dictionary<int, int> int_map = new Dictionary<int, int>(); foreach(KeyValuePair<int, int> i in int_map){}这样的代码就没有一点问题。

  评论这张
 
阅读(655)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018