On 6/21/2017 2:09 AM, Marek Skalický via Boost-users wrote:
Hi,
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.
Thanks,
Marek
[1] http://mongodb.github.io/mongo-cxx-driver/legacy-v1/installation/#s
cons-options-when-compiling-the-c-driver
_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users
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.
>
So generally boost is not affected by -std=c++XY. Asio library is
exception. I hope I get it right.
Probably mongo-cxx-driver upstream was referring to gcc dual ABI
problem and that it can affect Boost too.
Thanks again,
Marek
Miloslav Marik via Boost-users píše v St 21. 06. 2017 v 17:23 +0200:
> The problem is in ASIO library. S.
>
> 2017-06-21 15:44 GMT+02:00 Steve Lorimer via Boost-users <boost-users
> @lists.boost.org>:
> > They are probably referring to the changes wrt std::string and
> > std::list
> >
> > Pre-C++11 a lot of standard libraries used copy-on-write strings,
> > which was forbidden in C++11.
> >
> > std::list now has to have O(1) size, which is another possibly ABI
> > incompatible change.
> >
> > More details here: https://gcc.gnu.org/onlinedocs/libstdc++/manual/
> > using_dual_abi.html
> >
> > On 21 June 2017 at 01:09, Marek Skalický via Boost-users <boost-use