summaryrefslogtreecommitdiff
path: root/boost/align/detail/is_aligned.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/align/detail/is_aligned.hpp')
-rw-r--r--boost/align/detail/is_aligned.hpp26
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