Opened 10 years ago
Closed 10 years ago
#7907 closed Bugs (fixed)
including tr1/memory.h causes compile errors in c++11 mode
Reported by: | Marshall Clow | Owned by: | John Maddock |
---|---|---|---|
Milestone: | Boost 1.53.0 | Component: | TR1 |
Version: | Boost 1.52.0 | Severity: | Showstopper |
Keywords: | Cc: |
Description
From the ML:
On Jan 18, 2013, at 5:17 PM, Ioannis Papadopoulos <ipapadop@…> wrote:
With the minimal test:
#include <boost/tr1/memory.hpp> int main() {}
I am getting the following using gcc 4.7.2 in C++11 mode:
/usr/local/boost/boost_1_53_beta/include/boost/shared_ptr.hpp:17:0, from /usr/local/boost/boost_1_53_beta/include/boost/tr1/memory.hpp:56, from test.cc:1: /usr/local/boost/boost_1_53_beta/include/boost/smart_ptr/shared_ptr.hpp:782:74: error: declaration of ‘template<class T> void boost::swap(boost::shared_ptr<T>&, boost::shared_ptr<T>&) noexcept (true)’ has a different exception specifier
.. and so on...
I have duplicated this behavior using clang in C++11 mode.
The problem is that template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b)
(and others) is declared BOOST_NOEXCEPT
in /boost/smart_ptr/shared_ptr.hpp, and without the BOOST_NOEXCEPT
in boost/tr1/memory.hpp.
With the attached patch applied, the OP's trivial program now compiles w/o errors (using clang).
I have marked this as a showstopper because I believe this needs to be fixed before the 1.53.0 release.
Attachments (1)
Change History (4)
by , 10 years ago
Attachment: | tr1-noexcept.patch added |
---|
comment:1 by , 10 years ago
comment:2 by , 10 years ago
comment:3 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [82559]) Fix failure caused by changes to shared_ptr. Refs #7907.