On 13 May 2015 at 13:00, Edward Diener wrote:
It is definitely worth discussing. The key is "with well documented (and encoded) dependencies among them".
How do we do this ? '
APIBind provides a formal dependencies implementation system at the C++ namespace level. git submodules are an effective, if brutal, dependency fetching implementation. They work.
It is silly to suppose that new "Boost" libraries will be developed that do not depend on other already existing Boost libraries. If library X depends on library Y we currently know that library X will work with library Y for Boost distro N because we have tested them before we release distro N. If library X goes off with its own release schedule how do we determine with which versions of Y it will work when it is being released ?
This is the crux of the matter if we have individual Boost libraries being released on their own.
APIBind provides a formal API versioning implementation. So library A can depend on library X v1 and library B can depend on library X v2 and both can coexist in the same translation unit. APIBind also allows dependency injection so users of libraries can inject the implementations they choose. API and ABI separation and coexistence also works as expected, including in the same translation unit. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/