Index: boost/signals2/detail/foreign_ptr.hpp =================================================================== --- boost/signals2/detail/foreign_ptr.hpp (revision 82985) +++ boost/signals2/detail/foreign_ptr.hpp (working copy) @@ -18,14 +18,7 @@ #include #include -//FIXME: this is a hack to deal with the fact BOOST_NO_CXX_SMART_PTR doesn't -// exist yet in boost.config. It will fail on a library which implements -// C++11 std::tuple but not std::shared_ptr and std::weak_ptr. -#ifdef BOOST_NO_CXX11_HDR_TUPLE -#define BOOST_SIGNALS2_NO_CXX11_SMART_PTR -#endif - -#ifndef BOOST_SIGNALS2_NO_CXX11_SMART_PTR +#ifndef BOOST_NO_CXX11_SMART_PTR #include #endif @@ -42,7 +35,7 @@ { typedef boost::shared_ptr shared_type; }; -#ifndef BOOST_SIGNALS2_NO_CXX11_SMART_PTR +#ifndef BOOST_NO_CXX11_SMART_PTR template struct weak_ptr_traits > { typedef std::shared_ptr shared_type; @@ -56,7 +49,7 @@ { typedef boost::weak_ptr weak_type; }; -#ifndef BOOST_SIGNALS2_NO_CXX11_SMART_PTR +#ifndef BOOST_NO_CXX11_SMART_PTR template struct shared_ptr_traits > { typedef std::weak_ptr weak_type; Index: libs/signals2/test/track_test.cpp =================================================================== --- libs/signals2/test/track_test.cpp (revision 82985) +++ libs/signals2/test/track_test.cpp (working copy) @@ -110,9 +110,7 @@ } BOOST_CHECK(s1(2) == 0); -// there isn't a boost config macro that detects the existance of std::shared_ptr or std::weak_ptr, -// so we rely on BOOST_NO_CXX11_VARIADIC_TEMPLATES as a hack -#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES +#ifndef BOOST_NO_CXX11_SMART_PTR // Test tracking through std::shared_ptr/weak_ptr BOOST_CHECK(s1(5) == 0); {