In addition to @LightnessRacesInOrbit's point, I'd say there are a few reasons:
- Boost has a lot of code in
.h
and .hpp
files, which you need to include in every translation unit (which uses the relevant parts of Boost), and those files are laden with complex and recursive macro use and smart - but again, complex - use of templates. The combination makes your compilation a w-h-o-l-e lot slower.
- Boost isn't installed everywhere by default, so it's not always available to you just because C++ and the standard C++ library is.
- (A new reason actually) A sizeable fraction of Boost functionality has made it into C++11 (more is in C++14, and still more in C++17). So, by now, there are alternatives in the standard library or even the language itself for part of what Boost offers.