
What would happen of libstdc++ was statically linked or even libc?
Bad things.
And boost becomes today as important as libstdc++.
Boost isn't designed to be a single, system-wide source of functionality for a wide array of libraries and applications. To do so would make it something else entirely.
With more and more functionality being added to boost, the likelyhood for people to try using it for exactly that purpose increases. I do not think this is a bad thing, nor do I think it goes completely contrary to boost's evolution. But due to boost's design, it cannot be used for that purpose in the same way as it is possible for libstdc++ or libc. For both libstdc++ and libc, ABI changes were generally avoided as far as possible. Boost doesn't do so, nor do I think it would do boost anything good if it did. But using appropriate tools not to avoid ABI multiplicity, but to deal with it, it might well become a system-wide functionality source. Such tools could be: * user-controlled name mangling to avoid collisions * ABI introspection (like a static int boost::shared_ptr<T>::abi_version) * explicit indirection facilities to shield important interfaces against ABI changes * smarter build autoconfiguration tools Best regards, Isidor