From db542de9085666c3b7642c8184913cb9e0cdaacf Mon Sep 17 00:00:00 2001 From: Glen Fernandes Date: Tue, 11 Dec 2012 20:51:05 +0000 Subject: [PATCH] Use _internal_get_untyped_deleter in allocate_shared_array and make_shared_array [SVN r81865] --- .../boost/smart_ptr/allocate_shared_array.hpp | 92 +++++++++---------- include/boost/smart_ptr/make_shared_array.hpp | 90 +++++++++--------- 2 files changed, 91 insertions(+), 91 deletions(-) diff --git a/include/boost/smart_ptr/allocate_shared_array.hpp b/include/boost/smart_ptr/allocate_shared_array.hpp index 9aaacc7..7f78d0e 100644 --- a/include/boost/smart_ptr/allocate_shared_array.hpp +++ b/include/boost/smart_ptr/allocate_shared_array.hpp @@ -1,9 +1,9 @@ /* - * Copyright (c) 2012 Glen Joseph Fernandes + * Copyright (c) 2012 Glen Joseph Fernandes * glenfe at live dot com * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt * or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP @@ -20,7 +20,7 @@ namespace boost { template - inline typename boost::detail::sp_if_array::type + inline typename boost::detail::sp_if_array::type allocate_shared(const A& allocator, std::size_t size) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; @@ -30,9 +30,9 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2); return boost::shared_ptr(s1, p1); } @@ -48,9 +48,9 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(args)...); return boost::shared_ptr(s1, p1); } @@ -59,17 +59,17 @@ namespace boost { allocate_shared(const A& allocator, Args&&... args) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; boost::detail::allocate_array_helper a1(allocator, &p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(args)...); return boost::shared_ptr(s1, p1); } @@ -77,7 +77,7 @@ namespace boost { #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) template inline typename boost::detail::sp_if_array::type - allocate_shared(const A& allocator, + allocate_shared(const A& allocator, std::initializer_list::type> list) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; @@ -89,10 +89,10 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list.begin()); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } @@ -104,8 +104,8 @@ namespace boost { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; typedef const T2 T3; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; @@ -113,21 +113,21 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, &p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } template inline typename boost::detail::sp_if_array::type - allocate_shared(const A& allocator, std::size_t size, + allocate_shared(const A& allocator, std::size_t size, const typename boost::detail::array_inner::type& list) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; typedef const T2 T3; - enum { + enum { M = boost::detail::array_total::size }; T1* p1 = 0; @@ -137,41 +137,41 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } template inline typename boost::detail::sp_if_size_array::type - allocate_shared(const A& allocator, + allocate_shared(const A& allocator, const typename boost::detail::array_inner::type& list) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; typedef const T2 T3; - enum { - M = boost::detail::array_total::size, - N = boost::detail::array_total::size + enum { + M = boost::detail::array_total::size, + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; - T3* p3 = 0; + T3* p3 = 0; boost::detail::allocate_array_helper a1(allocator, &p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } #if defined(BOOST_HAS_RVALUE_REFS) template inline typename boost::detail::sp_if_array::type - allocate_shared(const A& allocator, std::size_t size, + allocate_shared(const A& allocator, std::size_t size, typename boost::detail::array_base::type&& value) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; @@ -181,29 +181,29 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(value)); return boost::shared_ptr(s1, p1); } template inline typename boost::detail::sp_if_size_array::type - allocate_shared(const A& allocator, + allocate_shared(const A& allocator, typename boost::detail::array_base::type&& value) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; boost::detail::allocate_array_helper a1(allocator, &p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(value)); return boost::shared_ptr(s1, p1); } @@ -220,9 +220,9 @@ namespace boost { boost::detail::allocate_array_helper a1(allocator, n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_noinit(p2); return boost::shared_ptr(s1, p1); } @@ -231,17 +231,17 @@ namespace boost { allocate_shared_noinit(const A& allocator) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; boost::detail::allocate_array_helper a1(allocator, &p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_noinit(p2); return boost::shared_ptr(s1, p1); } diff --git a/include/boost/smart_ptr/make_shared_array.hpp b/include/boost/smart_ptr/make_shared_array.hpp index cf63ecb..b9c197c 100644 --- a/include/boost/smart_ptr/make_shared_array.hpp +++ b/include/boost/smart_ptr/make_shared_array.hpp @@ -1,9 +1,9 @@ /* - * Copyright (c) 2012 Glen Joseph Fernandes + * Copyright (c) 2012 Glen Joseph Fernandes * glenfe at live dot com * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt * or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP @@ -30,9 +30,9 @@ namespace boost { boost::detail::make_array_helper a1(n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2); return boost::shared_ptr(s1, p1); } @@ -48,9 +48,9 @@ namespace boost { boost::detail::make_array_helper a1(n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(args)...); return boost::shared_ptr(s1, p1); } @@ -59,17 +59,17 @@ namespace boost { make_shared(Args&&... args) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; boost::detail::make_array_helper a1(&p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(args)...); return boost::shared_ptr(s1, p1); } @@ -88,13 +88,13 @@ namespace boost { boost::detail::make_array_helper a1(n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list.begin()); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); - } + } #endif #if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) template @@ -103,8 +103,8 @@ namespace boost { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; typedef const T2 T3; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; @@ -112,22 +112,22 @@ namespace boost { boost::detail::make_array_helper a1(&p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } template inline typename boost::detail::sp_if_array::type - make_shared(std::size_t size, + make_shared(std::size_t size, const typename boost::detail::array_inner::type& list) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; typedef const T2 T3; - enum { - M = boost::detail::array_total::size + enum { + M = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; @@ -136,10 +136,10 @@ namespace boost { boost::detail::make_array_helper a1(n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } @@ -149,9 +149,9 @@ namespace boost { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; typedef const T2 T3; - enum { + enum { M = boost::detail::array_total::size, - N = boost::detail::array_total::size + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; @@ -159,17 +159,17 @@ namespace boost { boost::detail::make_array_helper a1(&p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p3 = reinterpret_cast(list); p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_list(p2, p3); return boost::shared_ptr(s1, p1); } #if defined(BOOST_HAS_RVALUE_REFS) template inline typename boost::detail::sp_if_array::type - make_shared(std::size_t size, + make_shared(std::size_t size, typename boost::detail::array_base::type&& value) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; @@ -179,9 +179,9 @@ namespace boost { boost::detail::make_array_helper a1(n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(value)); return boost::shared_ptr(s1, p1); } @@ -190,17 +190,17 @@ namespace boost { make_shared(typename boost::detail::array_base::type&& value) { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; boost::detail::make_array_helper a1(&p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; + typedef boost::detail::array_deleter* D2; p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct(p2, boost::detail::sp_forward(value)); return boost::shared_ptr(s1, p1); } @@ -217,9 +217,9 @@ namespace boost { boost::detail::make_array_helper a1(n1, &p2); boost::detail::array_deleter d1(n1); boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_noinit(p2); return boost::shared_ptr(s1, p1); } @@ -228,17 +228,17 @@ namespace boost { make_shared_noinit() { typedef typename boost::detail::array_inner::type T1; typedef typename boost::detail::array_base::type T2; - enum { - N = boost::detail::array_total::size + enum { + N = boost::detail::array_total::size }; T1* p1 = 0; T2* p2 = 0; boost::detail::make_array_helper a1(&p2); boost::detail::array_deleter d1; boost::shared_ptr s1(p1, d1, a1); - boost::detail::array_deleter* d2; - p1 = reinterpret_cast(p2); - d2 = get_deleter >(s1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); d2->construct_noinit(p2); return boost::shared_ptr(s1, p1); }