Nov
28
Boost
Filed Under Everything |
It’s time to introduce another 3rd party library that some of the code we work on here will depend on: Boost. Hopefully, many of you are already familiar with Boost, and already have an up-to-date version of it installed. For those of you who don’t already know about it, I strongly suggest you check it out. It’s basically a collection of very useful, well designed and tested utility libraries, such as regular expressions, filename/path management, and serialization (which I discussed before in The Un-Fun Stuff). Many of the people who develop the Boost library are also heavily involved in designing the C++ Standard Library, and many of Boost’s sub-libraries are on track to be included in future versions of the C++ Standard Library. I know there are a number of people out there who dislike Boost. From what I’ve seen, they are generally the same people who dislike the C++ Standard Library. It really seems to be an almost religious thing, and you can read many arguments for and against both libraries on other blogs, newsgroups, and gopher. Well, maybe not gopher so much…
I’m not going to try to sway those of you who dislike Boost or the C++ Standard Library. But I am going to be using them both, heavily, in the code presented here. Just a fair warning.
So, if you don’t already have Boost installed, please grab it and install it. There’s a very good Getting Started guide at the Boost website. The next batch of code I present here depends on the Boost Filesystem library, and it requires at least version 1.34.1. If you already have a 1.33.x version, you’ll need to upgrade. Fortunately, Boost installs itself into versioned directories by default, so you can have 1.33 installed side-by-side with 1.34, if need be.
UPDATE, 7/2/08: Boost is now in version 1.35. I’ve got ahead and made the switch, and I won’t promise that code presented here doesn’t depend on it. In other words, if you plan to follow along, then you’ll need Boost 1.35!
UPDATE, 8/19/08: Boost is now in version 1.36. Same thing as with 1.35 - you’ll need to upgrade!