Opened 8 years ago

Last modified 8 years ago

#10523 closed Bugs

clang 3.4.2 (and greater) defines BOOST_NO_CXX11_SMART_PTR — at Version 1

Reported by: Daniel C. Dillon <dan@…> Owned by:
Milestone: To Be Determined Component: config
Version: Boost 1.56.0 Severity: Showstopper
Keywords: clang BOOST_NO_CXX11_SMART_PTR Cc:

Description (last modified by viboes)

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

Change History (1)

comment:1 by viboes, 8 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.