首页 > 新闻系统 > 软件学院 > 文章正文

Boost在C++自己的墙上打洞

2008-03-25 10:30:18 来源:中国教程网 作者:佚名 点击:
Boost是极有才华的程序员们编写的C++库。Boost中的编程技巧、对C++及泛型的使用方式、以及其最终实现的效果都令人吃惊,甚至叹为观止。C++是强类型语言,有严格的类型检查。而Boost使用C++实现了弱类型的效果,着实在C++的墙上打了一个洞。

 
噢。。。这是什么,那个anyVal是什么类型的?any?它能除了int,long,X,还能赋值成别的类型么?这是C++程序么? 还是别的什么东东?
 
any是Boost的泛型指针,它确实可以赋值成任何类型。any其实是一个类。但any确实可以是任何类型。但单纯的any也什么类型也不是。当它是C#中的var好了。
 
再看看下面这段代码(摘自刘未鹏的文章:泛型指针类any之海纳百川):
 
#include "boost/assign/std/vector.hpp"
using namespace boost::assign;
 
vector i_v;
i_v += 1,2,3,4,5;
 
看看上面代码中最后一句的赋值语句。你真的还相信这是C++程序么?这样的代码能通过编译么?在C++编译器这堵墙还竖立在那里的时候,Boost能让这些代码顺利穿过么?
 
Boost做到了!
 
我想知道Boost是怎么做到的,我下载了Boost的源文件,我看到了Boost的源代码,我看到了复杂的模板,我看到了自己想像不出的高超技巧! Boost确实能在C++中实现这些代码。
 
事实上Boost实现的效果远不止文中描述的这些。Boost的源代码似乎也高于我的智慧,以至于我仍没有完全弄清楚它是怎么实现的,只能以后慢慢研究了。
 
C++的类型检查、语法规范等都很严格。它们像墙一样保护了C++程序的安全,并严格限制了C++的代码。Boost是使用C++编写的库,符合C++规范却让弱类型操作和奇怪的语句顺利穿过了这些墙。我觉得Boost不只是在发展C++,也是在C++自己的墙上打洞。 
 
  
9 7 3 1 2 4 8 :

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203