diff options
Diffstat (limited to 'boost/align')
-rw-r--r-- | boost/align/aligned_allocator.hpp | 6 | ||||
-rw-r--r-- | boost/align/aligned_allocator_adaptor.hpp | 47 | ||||
-rw-r--r-- | boost/align/detail/align.hpp | 4 | ||||
-rw-r--r-- | boost/align/detail/align_down.hpp | 4 | ||||
-rw-r--r-- | boost/align/detail/align_up.hpp | 4 | ||||
-rw-r--r-- | boost/align/detail/alignment_of_msvc.hpp | 3 | ||||
-rw-r--r-- | boost/align/detail/is_alignment.hpp | 1 |
7 files changed, 24 insertions, 45 deletions
diff --git a/boost/align/aligned_allocator.hpp b/boost/align/aligned_allocator.hpp index 6d0f788952..6176bc27c0 100644 --- a/boost/align/aligned_allocator.hpp +++ b/boost/align/aligned_allocator.hpp @@ -28,8 +28,7 @@ namespace alignment { template<class T, std::size_t Alignment> class aligned_allocator { - BOOST_STATIC_ASSERT(detail:: - is_alignment_constant<Alignment>::value); + BOOST_STATIC_ASSERT(detail::is_alignment_constant<Alignment>::value); public: typedef T value_type; @@ -124,8 +123,7 @@ public: template<std::size_t Alignment> class aligned_allocator<void, Alignment> { - BOOST_STATIC_ASSERT(detail:: - is_alignment_constant<Alignment>::value); + BOOST_STATIC_ASSERT(detail::is_alignment_constant<Alignment>::value); public: typedef void value_type; diff --git a/boost/align/aligned_allocator_adaptor.hpp b/boost/align/aligned_allocator_adaptor.hpp index 8905c215d3..c9fae1cf20 100644 --- a/boost/align/aligned_allocator_adaptor.hpp +++ b/boost/align/aligned_allocator_adaptor.hpp @@ -8,13 +8,13 @@ Distributed under the Boost Software License, Version 1.0. #ifndef BOOST_ALIGN_ALIGNED_ALLOCATOR_ADAPTOR_HPP #define BOOST_ALIGN_ALIGNED_ALLOCATOR_ADAPTOR_HPP -#include <boost/align/detail/addressof.hpp> #include <boost/align/detail/is_alignment_constant.hpp> #include <boost/align/detail/max_align.hpp> #include <boost/align/detail/max_size.hpp> #include <boost/align/align.hpp> #include <boost/align/aligned_allocator_adaptor_forward.hpp> #include <boost/align/alignment_of.hpp> +#include <boost/core/pointer_traits.hpp> #include <boost/static_assert.hpp> #include <new> @@ -32,39 +32,25 @@ namespace alignment { template<class Allocator, std::size_t Alignment> class aligned_allocator_adaptor : public Allocator { - BOOST_STATIC_ASSERT(detail:: - is_alignment_constant<Alignment>::value); + BOOST_STATIC_ASSERT(detail::is_alignment_constant<Alignment>::value); #if !defined(BOOST_NO_CXX11_ALLOCATOR) typedef std::allocator_traits<Allocator> traits; - - typedef typename traits:: - template rebind_alloc<char> char_alloc; - - typedef typename traits:: - template rebind_traits<char> char_traits; - + typedef typename traits::template rebind_alloc<char> char_alloc; + typedef typename traits::template rebind_traits<char> char_traits; typedef typename char_traits::pointer char_ptr; #else - typedef typename Allocator:: - template rebind<char>::other char_alloc; - + typedef typename Allocator::template rebind<char>::other char_alloc; typedef typename char_alloc::pointer char_ptr; #endif public: -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef typename traits::value_type value_type; - typedef typename traits::size_type size_type; -#else typedef typename Allocator::value_type value_type; - typedef typename Allocator::size_type size_type; -#endif - typedef value_type* pointer; typedef const value_type* const_pointer; typedef void* void_pointer; typedef const void* const_void_pointer; + typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; private: @@ -77,11 +63,11 @@ public: template<class U> struct rebind { #if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef aligned_allocator_adaptor<typename traits:: - template rebind_alloc<U>, Alignment> other; + typedef aligned_allocator_adaptor<typename traits::template + rebind_alloc<U>, Alignment> other; #else - typedef aligned_allocator_adaptor<typename Allocator:: - template rebind<U>::other, Alignment> other; + typedef aligned_allocator_adaptor<typename Allocator::template + rebind<U>::other, Alignment> other; #endif }; @@ -120,10 +106,9 @@ public: std::size_t n = s + min_align - 1; char_alloc a(base()); char_ptr p = a.allocate(sizeof p + n); - void* r = detail::addressof(*p) + sizeof p; + void* r = boost::pointer_traits<char_ptr>::to_address(p) + sizeof p; (void)align(min_align, s, r, n); - ::new(static_cast<void*>(static_cast<char_ptr*>(r) - - 1)) char_ptr(p); + ::new(static_cast<void*>(static_cast<char_ptr*>(r) - 1)) char_ptr(p); return static_cast<pointer>(r); } @@ -140,10 +125,9 @@ public: #else char_ptr p = a.allocate(sizeof p + n, h); #endif - void* r = detail::addressof(*p) + sizeof p; + void* r = boost::pointer_traits<char_ptr>::to_address(p) + sizeof p; (void)align(min_align, s, r, n); - ::new(static_cast<void*>(static_cast<char_ptr*>(r) - - 1)) char_ptr(p); + ::new(static_cast<void*>(static_cast<char_ptr*>(r) - 1)) char_ptr(p); return static_cast<pointer>(r); } @@ -152,8 +136,7 @@ public: char_ptr r = *p; p->~char_ptr(); char_alloc a(base()); - a.deallocate(r, sizeof r + size * sizeof(value_type) + - min_align - 1); + a.deallocate(r, sizeof r + size * sizeof(value_type) + min_align - 1); } }; diff --git a/boost/align/detail/align.hpp b/boost/align/detail/align.hpp index a58dcea747..905940ad77 100644 --- a/boost/align/detail/align.hpp +++ b/boost/align/detail/align.hpp @@ -20,8 +20,8 @@ align(std::size_t alignment, std::size_t size, void*& ptr, { BOOST_ASSERT(detail::is_alignment(alignment)); if (size <= space) { - char* p = reinterpret_cast<char*>((reinterpret_cast<std:: - size_t>(ptr) + alignment - 1) & ~(alignment - 1)); + char* p = reinterpret_cast<char*>(~(alignment - 1) & + (reinterpret_cast<std::size_t>(ptr) + alignment - 1)); std::size_t n = space - (p - static_cast<char*>(ptr)); if (size <= n) { ptr = p; diff --git a/boost/align/detail/align_down.hpp b/boost/align/detail/align_down.hpp index 9a8c358c41..de3c80d06d 100644 --- a/boost/align/detail/align_down.hpp +++ b/boost/align/detail/align_down.hpp @@ -18,8 +18,8 @@ inline void* align_down(void* ptr, std::size_t alignment) BOOST_NOEXCEPT { BOOST_ASSERT(detail::is_alignment(alignment)); - return reinterpret_cast<void*>(reinterpret_cast<std:: - size_t>(ptr) & ~(alignment - 1)); + return reinterpret_cast<void*>(~(alignment - 1) & + reinterpret_cast<std::size_t>(ptr)); } } /* alignment */ diff --git a/boost/align/detail/align_up.hpp b/boost/align/detail/align_up.hpp index 86686da6ae..ac11f8964f 100644 --- a/boost/align/detail/align_up.hpp +++ b/boost/align/detail/align_up.hpp @@ -18,8 +18,8 @@ inline void* align_up(void* ptr, std::size_t alignment) BOOST_NOEXCEPT { BOOST_ASSERT(detail::is_alignment(alignment)); - return reinterpret_cast<void*>((reinterpret_cast<std:: - size_t>(ptr) + alignment - 1) & ~(alignment - 1)); + return reinterpret_cast<void*>(~(alignment - 1) & + (reinterpret_cast<std::size_t>(ptr) + alignment - 1)); } } /* alignment */ diff --git a/boost/align/detail/alignment_of_msvc.hpp b/boost/align/detail/alignment_of_msvc.hpp index 1526c7c296..440b840db4 100644 --- a/boost/align/detail/alignment_of_msvc.hpp +++ b/boost/align/detail/alignment_of_msvc.hpp @@ -23,8 +23,7 @@ struct offset_value { template<class T> struct alignment_of - : min_size<sizeof(T), - sizeof(offset_value<T>) - (sizeof(T) << 1)> { }; + : min_size<sizeof(T), sizeof(offset_value<T>) - (sizeof(T) << 1)> { }; } /* detail */ } /* alignment */ diff --git a/boost/align/detail/is_alignment.hpp b/boost/align/detail/is_alignment.hpp index 8bedba19c3..542fbe4694 100644 --- a/boost/align/detail/is_alignment.hpp +++ b/boost/align/detail/is_alignment.hpp @@ -4,7 +4,6 @@ Copyright 2014 Glen Joseph Fernandes Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) - */ #ifndef BOOST_ALIGN_DETAIL_IS_ALIGNMENT_HPP #define BOOST_ALIGN_DETAIL_IS_ALIGNMENT_HPP |