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