From c641e8e5447f936a2804f72b0a03a134f53773ab Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Fri, 17 Jul 2015 21:37:01 +0300 Subject: [PATCH 1/3] Disabled libstdc++ warnings about auto_ptr deprecation. --- include/boost/get_pointer.hpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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 ) From 5e8b9152be6166dc4de779beaf795cbdcec5d384 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Fri, 17 Jul 2015 21:41:44 +0300 Subject: [PATCH 2/3] Added a check for C++11 mode to disable auto_ptr deprecation warnings. --- include/boost/get_pointer.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/get_pointer.hpp b/include/boost/get_pointer.hpp index 774f52c..2904d1e 100644 --- a/include/boost/get_pointer.hpp +++ b/include/boost/get_pointer.hpp @@ -26,7 +26,7 @@ template T * get_pointer(T * p) #if !defined( BOOST_NO_AUTO_PTR ) -#if defined( __GNUC__ ) +#if defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) #if defined( BOOST_GCC ) && BOOST_GCC >= 40600 #define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS #elif defined( __clang__ ) && defined( __has_warning ) @@ -34,7 +34,7 @@ template T * get_pointer(T * p) #define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS #endif // __has_warning("-Wdeprecated-declarations") #endif -#endif // defined( __GNUC__ ) +#endif // defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) #if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) // Disable libstdc++ warnings about std::auto_ptr being deprecated in C++11 mode From 5d9aeb316177fe3de58d9d7f74cc02d757644886 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Fri, 17 Jul 2015 21:50:44 +0300 Subject: [PATCH 3/3] Slightly more robust check for BOOST_GCC. --- include/boost/get_pointer.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/boost/get_pointer.hpp b/include/boost/get_pointer.hpp index 2904d1e..36e2cd7 100644 --- a/include/boost/get_pointer.hpp +++ b/include/boost/get_pointer.hpp @@ -27,8 +27,10 @@ template T * get_pointer(T * p) #if !defined( BOOST_NO_AUTO_PTR ) #if defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) -#if defined( BOOST_GCC ) && BOOST_GCC >= 40600 +#if defined( BOOST_GCC ) +#if BOOST_GCC >= 40600 #define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS +#endif // BOOST_GCC >= 40600 #elif defined( __clang__ ) && defined( __has_warning ) #if __has_warning("-Wdeprecated-declarations") #define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS