Re: Using C++11



2015-08-03 14:59 GMT+02:00 Kalev Lember <kalevlember gmail com>:
How does this play with gtkmm 2.4? If glibmm now requires C++11, does it
mean that gtkmm 2.4 and legacy apps that are still on gtkmm 2.4 need to
be built with std=c++11 as well?

My understanding is that using C++11 and the ABI break are independent
of each other.

The ABI break is required to support a few features of the C++11
standard library that are required for strict conformance, like
constant-time size() in std::list and removal of copy-on-write in
std::string. However, C++11 code can still be built to the old ABI and
mixed freely with C++03 code at link time. Similarly, C++03 code can
be built to the new ABI. The C++11-related ABI break in libstdc++ is
only of interest to distribution maintainers, libstdc++ developers,
and perhaps people compiling their own gtkmm stack (e.g. on Windows).

Simply compiling code with -std=c++11 does NOT use the new ABI; to use
the new ABI, you need to recompile GCC and libstdc++ with appropriate
options.

Please correct me if that's wrong.

Regards, Krzysztof


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]