Well, as soon as you have a string, you may have incompatibilities. And lots of Boost libraries do use them.

2017-06-21 16:16 GMT+01:00 Edward Diener via Boost-users <boost-users@lists.boost.org>:
On 6/21/2017 2:09 AM, Marek Skalick√Ĺ via Boost-users wrote:
mongo-cxx-driver notices this:
"Important note about C++11/C++14: The boost libraries do not offer a
stable ABI across different versions of the C++ standard. As a result,
you must ensure that your application, the C++ driver, and boost are
all built with the same language standard. In particular, if you are
building the C++ driver with C++11 enabled, you must also build your
application with C++11 enabled, and link against a C++11 compiled
boost. " [1]

Is it true? What changes with new standard? (or is this only related to
ABI change in gcc introduced by c++11?)

I'm interested mainly in libraries: filesystem, chrono, thread, system
and regex

I can't speak for the libraries you mention above. But regarding Boost libraries in general many Boost libraries are unaffected in their public interface whether you compile with C++03, C++11, C++14, or C++17 support. If a library is affected in its public interface depending on the level of C++ support it should document this and, needless to say if it is a built library whether static or shared, it should have a distinct library name depending on its differing public interfaces.


[1] http://mongodb.github.io/mongo-cxx-driver/legacy-v1/installation/#s

Boost-users mailing list

Information System Engineer, Ph.D.
Blog: http://blog.audio-tk.com/
LinkedIn: http://www.linkedin.com/in/matthieubrucher