
Mathias Gaunard wrote:
If low coupling is maintained, I don't see how having dependencies is such a problem. AFAIK, the interfaces of boost libraries have kept stable once they were accepted in release.
I don't think this is true. Sometimes interfaces have changed, which has caused quite some discussion on this list. I'm pointing this out because I believe it would be naive to assume that relying on external APIs comes at no cost. There is always a trade-off to make. Reuse of design and code is often a good thing, but not always. Add to that an additional conceptual complexity. If you can express the design of your software in simple terms, you win. However, if, in order to understand this design, users have to first grasp very generic concepts documented and coded elsewhere, it makes it already harder to understand. The idiosynchratic / proverbial 'AbstractModelImplementationFactoryProvider' from Java also exists (with different spelling) in modern C++.
A tuple is just an enhancement to the language to express your algorithms with. Some people even consider C++ with that kind of library addition to be a new language altogether, and that is why they use boost.
Regards, Stefan -- ...ich hab' noch einen Koffer in Berlin...