diff options
Diffstat (limited to 'boost/align/detail/is_aligned.hpp')
-rw-r--r-- | boost/align/detail/is_aligned.hpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/boost/align/detail/is_aligned.hpp b/boost/align/detail/is_aligned.hpp index e7c7dd60a0..61982c4685 100644 --- a/boost/align/detail/is_aligned.hpp +++ b/boost/align/detail/is_aligned.hpp @@ -1,36 +1,34 @@ /* -(c) 2014 Glen Joseph Fernandes -<glenjofe -at- gmail.com> +Copyright 2014 Glen Joseph Fernandes +(glenjofe@gmail.com) -Distributed under the Boost Software -License, Version 1.0. -http://boost.org/LICENSE_1_0.txt +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_ALIGN_DETAIL_IS_ALIGNED_HPP #define BOOST_ALIGN_DETAIL_IS_ALIGNED_HPP #include <boost/align/detail/is_alignment.hpp> -#include <boost/align/is_aligned_forward.hpp> #include <boost/assert.hpp> namespace boost { namespace alignment { -inline bool is_aligned(const void* ptr, std::size_t alignment) - BOOST_NOEXCEPT +inline bool +is_aligned(const void* ptr, std::size_t alignment) BOOST_NOEXCEPT { BOOST_ASSERT(detail::is_alignment(alignment)); - return is_aligned((std::size_t)ptr, alignment); + return (reinterpret_cast<std::size_t>(ptr) & (alignment - 1)) == 0; } -inline bool is_aligned(std::size_t alignment, const void* ptr) - BOOST_NOEXCEPT +inline bool +is_aligned(std::size_t alignment, const void* ptr) BOOST_NOEXCEPT { BOOST_ASSERT(detail::is_alignment(alignment)); - return is_aligned((std::size_t)ptr, alignment); + return (reinterpret_cast<std::size_t>(ptr) & (alignment - 1)) == 0; } -} /* .alignment */ -} /* .boost */ +} /* alignment */ +} /* boost */ #endif |