From 7aec0e45bda6e80385c99aadcb420b034f7eccd5 Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Sun, 12 Apr 2015 15:08:55 +0200 Subject: [PATCH 1/2] [core] Add/improve ignore_unused() function specifiers. Add C++14 constexpr by BOOST_CXX14_CONSTEXPR. Replace inline with BOOST_FORCEINLINE. --- include/boost/core/ignore_unused.hpp | 24 ++++++++++++------------ test/ignore_unused_test.cpp | 11 +++++++++++ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/include/boost/core/ignore_unused.hpp b/include/boost/core/ignore_unused.hpp index 22047c2..994e5f6 100644 --- a/include/boost/core/ignore_unused.hpp +++ b/include/boost/core/ignore_unused.hpp @@ -14,53 +14,53 @@ namespace boost { #ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES template -inline void ignore_unused(Ts const& ...) +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(Ts const& ...) {} template -inline void ignore_unused() +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() {} #else template -inline void ignore_unused(T1 const&) +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&) {} template -inline void ignore_unused(T1 const&, T2 const&) +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&) {} template -inline void ignore_unused(T1 const&, T2 const&, T3 const&) +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&) {} template -inline void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&) +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&) {} template -inline void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&, T5 const&) +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&, T5 const&) {} template -inline void ignore_unused() +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() {} template -inline void ignore_unused() +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() {} template -inline void ignore_unused() +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() {} template -inline void ignore_unused() +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() {} template -inline void ignore_unused() +BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() {} #endif diff --git a/test/ignore_unused_test.cpp b/test/ignore_unused_test.cpp index 4c81aaf..67bdd80 100644 --- a/test/ignore_unused_test.cpp +++ b/test/ignore_unused_test.cpp @@ -6,6 +6,12 @@ #include +BOOST_CXX14_CONSTEXPR int test_fun(int a) +{ + boost::ignore_unused(a); + return 0; +} + int main() { { @@ -60,5 +66,10 @@ int main() boost::ignore_unused(); } + { + BOOST_CXX14_CONSTEXPR const int a = test_fun(0); + boost::ignore_unused(a); + } + return 0; } From de616f6d1bbffdf49cb6d84015d7992c60b71e0f Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Fri, 5 Jun 2015 14:09:08 +0200 Subject: [PATCH 2/2] Disable auto_ptr support in get_pointer when BOOST_NO_AUTO_PTR is defined. --- include/boost/get_pointer.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/boost/get_pointer.hpp b/include/boost/get_pointer.hpp index b27b98a..5e38832 100644 --- a/include/boost/get_pointer.hpp +++ b/include/boost/get_pointer.hpp @@ -24,11 +24,15 @@ template T * get_pointer(T * p) // get_pointer(shared_ptr const & p) has been moved to shared_ptr.hpp +#if !defined( BOOST_NO_AUTO_PTR ) + template T * get_pointer(std::auto_ptr const& p) { return p.get(); } +#endif + #if !defined( BOOST_NO_CXX11_SMART_PTR ) template T * get_pointer( std::unique_ptr const& p )