On Wed, Jun 21, 2017 at 08:44:53AM -0500, Steve Lorimer via Boost-users wrote:
> 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
That page explicitly points out that choosing a standard version with
-std does not affect the ABI:
"Although the changes were made for C++11 conformance, the choice of ABI
to use is independent of the -std option used to compile your code, i.e.
for a given GCC build the default value of the _GLIBCXX_USE_CXX11_ABI
macro is the same for all dialects. This ensures that the -std does not
change the ABI, so that it is straightforward to link C++03 and C++11
code together."
> On 21 June 2017 at 01:09, Marek Skalický via Boost-users <
> boost...@lists.boost.org> 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
> >
> > 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-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost- users