使用 Boost

现在的程序中用 STL 还是比较常见的. 用 STL 一个比较不爽的地方就是要写 functor. 在这个时候往往就希望 C++ 支持匿名函数. 也知道 boost 里有神奇的 lambda 库. 但一直觉得 boost 的安装比较麻烦. 所以也一直没有尝试. 

直到最近, 终于想通了. 常常觉得 java 一个很好的地方就是他有很多支持库. 其实 boost 也就是最好的 c++ 支持库啊. 如果因为安装麻烦而不用. 那不是有点因噎废食了? 所以我决定安装它. Boost 1.34 刚刚出来. 网上找到的安装过程一般都是针对 1.33 的. 不过过程也差不多. 只是 1.34 里似乎不建议自己编译 bjam, 而是去下载编译好的版本. 有了 bjam 后, 直接运行之就可以开始编译 boost 了. 我用的是 vs2005, 所以编译器问题不大.  有人说全部编译花了 3 小时. 我不知道花了多长时间(应该不到 3 小时), 但编译后的 lib 占了 2G 空间. 似乎没有提示什么错误. 试着编译了一些例子程序. 通过. 顺便说一下, bjam 用的是命令行编译的方式. 所以环境变量要设置好. 可以使用开始菜单中的那个 "Visual Studio 2005 Command Prompt", 在其中执行 bjam. 但我更倾向于把这些环境变量写到注册表中. 这样设置之后, 配合 scite, 写一些小的例子程序, 编译/运行还是非常方便的. 我把这些环境变量整理了一下. 从这里下载: http://nicoster.googlepages.com/vsvars32.bat  这个 bat 文件假定 vs2005 默认安装目录. 里面用到的 setx, 是 xp support tools 带的一个工具. 可以从这里下载: http://nicoster.googlepages.com/setx.rar

首先是试了试 lambda, 看了看 boost 自带的 doc, 简单的 lambda 表达式还是比较容易的. 然后在网上发现了 beyond the C++ : an intruduction to boost. 国内的几个站点有下载. 但下载不了. 后来还是求助于 filedonkey.com, 用 emule 下载到了. 正在看.传到我的 googlepages 上. 大家可以下载: http://nicoster.googlepages.com/boost_chm.rar

感觉 C++ 程序员还是很有必要看看 boost 的. 不是说非要去看他的实现. 但至少用法应该知道.

另外, 请教大家一个问题. boost 编译之后 lib 那么多层目录. 有什么好办法可以引用到这些 lib 文件? 逐个加到 lib 环境变量似乎不太现实.

 

你可能感兴趣的:(使用 Boost)