
On Mon, Feb 2, 2015 at 5:51 PM, Robert Ramey
Modest Proposal - Bridge module
We create a new module - named "bridge". In this module there is a directory: boost/bridge/archive.hpp. This contains only forward declarations:
class basic_iarchive; class basic_oarchive;
and maybe some other miscellaneous stuff. This includes no headers from boost/archive.
in date-time/serialization.hpp files in other libraries replace
#include
with #include Same is done in other libraries which implement serialization;
Everything works the same as before. BUT the dependency tools now stop looking when they get to the bridge header. So our dependency display stops at date-time. I think this is an accurate reflection of what is desired.
The building of applications which use date-time is exactly the same as it was before. The requirement to include (or not include) the boost serialization libraries is the same - that is it depends on which part of date-time the application actually uses. But there is a small difference - the application isn't including anything from boost/archive so the serialization library doesn't show up as dependent in the tools. Only the headers from boost/serialization are included. They are all header only and generally not dependent upon a lot of other boost stuff. This might be satisfactory.
It does leave us with two different definitions of "module" though. since both boost/serialization and boost/archive are currently in the same "module". In fact most of the tests actually test things in serialization against all the "archives". So teasing this out could be a pain. I'm not even going to think about this now.
I'm guessing that other libraries have some similar issues. This was raised previously by John Maddock under the heading "bridge libraries" he posed the question about how to deal with and we didn't really have an answer ... then.
I think the above is what many other people are suggesting already. Unless I've misinterpreted the requests. With that in mind I suggested this < http://tinyurl.com/p2nt3co> as a library structure (suggestion #2). -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail