Re: [Boost-bugs] [Boost C++ Libraries] #6779: Scoped enums break linking compatibility between C++98 and C++11

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