[Boost-bugs] [Boost C++ Libraries] #7675: BOOST_NO_DECLTYPE doesn't imply BOOST_NO_DECLTYPE_N3276 anymore

Subject: [Boost-bugs] [Boost C++ Libraries] #7675: BOOST_NO_DECLTYPE doesn't imply BOOST_NO_DECLTYPE_N3276 anymore
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-11-09 17:38:03


#7675: BOOST_NO_DECLTYPE doesn't imply BOOST_NO_DECLTYPE_N3276 anymore
-------------------------------+--------------------------------------------
 Reporter: gromer@… | Owner: johnmaddock
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: config
  Version: Boost 1.52.0 | Severity: Regression
 Keywords: |
-------------------------------+--------------------------------------------
 Here's a simple repro:

 {{{
 #define BOOST_NO_DECLTYPE

 #include <boost/suffix.hpp>

 #ifndef BOOST_NO_DECLTYPE_N3276
 #error "BOOST_NO_DECLTYPE should imply BOOST_NO_DECLTYPE_N3276"
 #endif
 }}}
 (I include only suffix.hpp so that the bug reproduces on any compiler; you
 can include boost/config.hpp instead, if you use a compiler that Boost
 detects as supporting N3276)

 This fails with Boost 1.52.0, but builds with 1.50.0 (I don't have 1.51.0
 handy to test, but from context I suspect it fails there too). This is a
 problem because utility/result_of.hpp, and possibly other Boost code,
 assumes decltype is permitted if BOOST_NO_DECLTYPE_N3276 is not defined;
 due to this bug, that code will continue to use decltype even when the
 user specifies BOOST_NO_DECLTYPE.

 I've attached a patch that fixes this specific issue, but note that it may
 reflect a more general problem with the handling of deprecated config
 macros.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7675>
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:11 UTC