diff --git a/include/boost/get_pointer.hpp b/include/boost/get_pointer.hpp index 5e38832..774f52c 100644 --- a/include/boost/get_pointer.hpp +++ b/include/boost/get_pointer.hpp @@ -26,13 +26,35 @@ template T * get_pointer(T * p) #if !defined( BOOST_NO_AUTO_PTR ) +#if defined( __GNUC__ ) +#if defined( BOOST_GCC ) && BOOST_GCC >= 40600 +#define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS +#elif defined( __clang__ ) && defined( __has_warning ) +#if __has_warning("-Wdeprecated-declarations") +#define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS +#endif // __has_warning("-Wdeprecated-declarations") +#endif +#endif // defined( __GNUC__ ) + +#if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) +// Disable libstdc++ warnings about std::auto_ptr being deprecated in C++11 mode +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#define BOOST_CORE_DETAIL_DISABLED_DEPRECATED_WARNINGS +#endif + template T * get_pointer(std::auto_ptr const& p) { return p.get(); } +#if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) +#pragma GCC diagnostic pop +#undef BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS #endif +#endif // !defined( BOOST_NO_AUTO_PTR ) + #if !defined( BOOST_NO_CXX11_SMART_PTR ) template T * get_pointer( std::unique_ptr const& p )