Re: [Boost-bugs] [Boost C++ Libraries] #10523: clang 3.4.2 (and greater) defines BOOST_NO_CXX11_SMART_PTR

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #10523: clang 3.4.2 (and greater) defines BOOST_NO_CXX11_SMART_PTR
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-09-22 17:10:15


#10523: clang 3.4.2 (and greater) defines BOOST_NO_CXX11_SMART_PTR
-------------------------------------+-------------------------------------
  Reporter: Daniel C. Dillon | Owner:
  <dan@…> | Status: new
      Type: Bugs | Component: None
 Milestone: To Be Determined | Severity: Showstopper
   Version: Boost 1.56.0 | Keywords: clang
Resolution: | BOOST_NO_CXX11_SMART_PTR
-------------------------------------+-------------------------------------
Description changed by viboes:

Old description:

> Due to the following code in boost/config/stdlib/libstdcpp3.hpp
> BOOST_NO_CXX11_SMART_PTR (among other things) is getting defined for
> clang 3.4.2 built with gcc-4.8.2 on CentOS 7. Apparently clang 3.4.2
> defines __GNUC__ as 4 and __GNUC_MINOR__ as 2.
>
> The net effect is that no get_pointer is defined for std::shared_ptr and
> boost::binds break down.
>
> #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) ||
> !defined(__GXX_EXPERIMENTAL_CXX0X__)
> # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
> # define BOOST_NO_CXX11_HDR_FORWARD_LIST
> # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
> # define BOOST_NO_CXX11_HDR_MUTEX
> # define BOOST_NO_CXX11_HDR_RATIO
> # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
> # define BOOST_NO_CXX11_SMART_PTR
> #else
> # define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
> # define BOOST_HAS_TR1_COMPLEX_OVERLOADS
> #endif

New description:

 Due to the following code in boost/config/stdlib/libstdcpp3.hpp
 BOOST_NO_CXX11_SMART_PTR (among other things) is getting defined for clang
 3.4.2 built with gcc-4.8.2 on CentOS 7. Apparently clang 3.4.2 defines
 __GNUC__ as 4 and __GNUC_MINOR__ as 2.

 The net effect is that no get_pointer is defined for std::shared_ptr and
 boost::binds break down.


 {{{
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) ||
 !defined(__GXX_EXPERIMENTAL_CXX0X__)
 # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 # define BOOST_NO_CXX11_HDR_FORWARD_LIST
 # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 # define BOOST_NO_CXX11_HDR_MUTEX
 # define BOOST_NO_CXX11_HDR_RATIO
 # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 # define BOOST_NO_CXX11_SMART_PTR
 #else
 # define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
 # define BOOST_HAS_TR1_COMPLEX_OVERLOADS
 #endif
 }}}

--
-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10523#comment:1>
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:17 UTC