Boost logo

Boost :

Subject: Re: [boost] [log] [asio] Conflicting default configs
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2015-03-31 20:49:02

On 31 Mar 2015 at 20:38, Andrey Semashev wrote:

> What I'd like to see is a solution for Boost.ASIO, as well as other header-
> only libraries that support ABI-breaking config options. Ideally, there should
> be a guideline for future libraries.

That's exactly BindLib. A python script it supplies will stamp out
the ABI versioning preprocessor metaprogramming for all the config
options which affect ABI. The preprocessor metaprogramming then
assembles the appropriate inline namespacing. The clang AST parser
program spits out the appropriate template aliasing. It all comes
together surprisingly well. I have a unit test for AFIO which
configures two extremely ABI incompatible copies of AFIO (one
entirely STL11 based, the other entirely Boost based) in the same
translation unit and it executes both sets of unit tests. Takes about
seven minutes to compile, but all unit tests pass green on all

> As for Boost.Log case, well, I'm still uncertain, but leaning towards dropping
> Boost.ASIO and writing my own network compatibility layer.

Before doing that I'd search for a header only lightweight C++ (or C)
sockets platform abstraction library. I believe there is more than
one available.

> > BTW Boost.ASIO lags standalone ASIO by up to a year.
> This is very unfortunate.

Boost.ASIO is the ultra stable edition. Bug fixes are cherry picked
into Boost.ASIO where easy to do so.


ned Productions Limited Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at