boost, shared_ptr and bcp

众所周知,STL的containers只支持“value语义”,而不支持“reference语义”。直接将对象的指针类型作为模板参数的方案并不完美,需要我们在erase()或remove()之外自己来释放对象。几乎所有人的推荐方案是,使用shared_ptr这个boost或者TR1中的智能指针(gccc 4.x已经提供了对TR1的支持)。不过,你知道boost是很大的(约40多M),而且不那么容易用Sun的C++编译器平顺地编译过去(如果不使用libstl-port的话)。关于Solaris上的Boost近况,参见http://blogs.sun.com/sga/category/Boost

后来又了解到bcp这个工具,可以将所需的module(s)提取出来,单独发布。于是就下载了boost的源代码包,编译了bjam和bcp,再用bcp将shared_ptr提取出来。结果吓了一跳,shared_ptr及其依赖的文件有300多个,共约3.5M。看来只好自己照猫画虎实现一个简化的ad hoc版本了...

2 thoughts on “boost, shared_ptr and bcp

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

To submit your comment, click the image below where it asks you to...
Clickcha - The One-Click Captcha