From 4046186a2daa7be157c6b9532deb9d593d06fb79 Mon Sep 17 00:00:00 2001 From: Glen Fernandes Date: Tue, 20 Jun 2017 18:58:09 -0400 Subject: [PATCH] Use BOOST_NOEXCEPT_OR_NOTHROW for get_deleter throw() optimizes better there with older versions of GCC in C++98. --- .../boost/smart_ptr/allocate_shared_array.hpp | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/include/boost/smart_ptr/allocate_shared_array.hpp b/include/boost/smart_ptr/allocate_shared_array.hpp index b9c4ce4..56bed2f 100644 --- a/include/boost/smart_ptr/allocate_shared_array.hpp +++ b/include/boost/smart_ptr/allocate_shared_array.hpp @@ -9,7 +9,6 @@ Distributed under the Boost Software License, Version 1.0. #define BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP #include -#include #include #include #include @@ -112,7 +111,7 @@ struct sp_array_count { }; template inline D* -sp_get_deleter(const boost::shared_ptr& value) BOOST_SP_NOEXCEPT +sp_get_deleter(const boost::shared_ptr& value) BOOST_NOEXCEPT_OR_NOTHROW { return static_cast(value._internal_get_untyped_deleter()); } @@ -648,7 +647,8 @@ public: size_(size) { } template - sp_array_allocator(const sp_array_allocator& other) BOOST_SP_NOEXCEPT + sp_array_allocator(const sp_array_allocator& other) + BOOST_SP_NOEXCEPT : allocator_(other.allocator_), size_(other.size_), result_(other.result_) { } @@ -762,8 +762,9 @@ public: allocator.deallocate(this, 1); } - void* get_deleter(const sp_typeinfo& ti) { - return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast(deleter_): 0; + void* get_deleter(const sp_typeinfo& info) { + return info == BOOST_SP_TYPEID(deleter_type) ? + &reinterpret_cast(deleter_) : 0; } void* get_untyped_deleter() { @@ -803,8 +804,9 @@ public: allocator.deallocate(this, 1); } - void* get_deleter(const sp_typeinfo& ti) { - return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast(deleter_): 0; + void* get_deleter(const sp_typeinfo& info) { + return info == BOOST_SP_TYPEID(deleter_type) ? + &reinterpret_cast(deleter_) : 0; } void* get_untyped_deleter() { @@ -849,8 +851,9 @@ public: allocator.deallocate(this, 1); } - void* get_deleter(const sp_typeinfo& ti) { - return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast(deleter_): 0; + void* get_deleter(const sp_typeinfo& info) { + return info == BOOST_SP_TYPEID(deleter_type) ? + &reinterpret_cast(deleter_) : 0; } void* get_untyped_deleter() { @@ -894,8 +897,9 @@ public: allocator.deallocate(this, 1); } - void* get_deleter(const sp_typeinfo& ti) { - return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast(deleter_): 0; + void* get_deleter(const sp_typeinfo& info) { + return info == BOOST_SP_TYPEID(deleter_type) ? + &reinterpret_cast(deleter_) : 0; } void* get_untyped_deleter() {