Subject: Re: [Boost-bugs] [Boost C++ Libraries] #6779: Scoped enums break linking compatibility between C++98 and C++11
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-05-13 11:35:45
#6779: Scoped enums break linking compatibility between C++98 and C++11
-------------------------------+--------------------------------------------
Reporter: andysem | Owner: bemandawes
Type: Bugs | Status: new
Milestone: To Be Determined | Component: filesystem
Version: Boost 1.48.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+--------------------------------------------
Comment (by andysem):
Replying to [comment:5 viboes]:
> It would be worth sharing on the ML the list the features that are in
the same case. Behind scoped enums, which others fall in this cathegory?
I don't have a complete list of C++11 features that break the ABI. But I
presume any C++11-specific feature that affects types and function
signatures should be avoided in binary interfaces. This includes scoped
enums and rvalue references at the very least. noexcept doesn't affect
function signatures, so it should be safe. constexpr should be inline, so
it should not pose any problems, too.
Also one should be very careful with STL types that are present in binary
interfaces. Obviously, if std::tuple is present in a function signature,
then this function cannot be called from a C++03 program. There may be
less obvious examples, such as container iterator types, if they are
different for C++03 and C++11.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/6779#comment:6> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:13 UTC