2 Copyright 2014-2015 Glen Joseph Fernandes
5 Distributed under the Boost Software License, Version 1.0.
6 (http://www.boost.org/LICENSE_1_0.txt)
8 #include <boost/align/align.hpp>
9 #include <boost/align/is_aligned.hpp>
10 #include <boost/core/lightweight_test.hpp>
12 template<std::size_t Alignment>
15 char s[Alignment << 1];
17 while (!boost::alignment::is_aligned(b, Alignment)) {
21 std::size_t n = Alignment;
23 void* q = boost::alignment::align(Alignment, 1, p, n);
26 BOOST_TEST(boost::alignment::is_aligned(q, Alignment));
27 BOOST_TEST(n == Alignment);
32 void* q = boost::alignment::align(Alignment, 1, p, n);
38 std::size_t n = Alignment - 1;
40 void* q = boost::alignment::align(Alignment, 1, p, n);
42 BOOST_TEST(p == &b[1]);
43 BOOST_TEST(n == Alignment - 1);
46 std::size_t n = Alignment;
48 void* q = boost::alignment::align(Alignment, 1, p, n);
50 BOOST_TEST(p == &b[Alignment]);
51 BOOST_TEST(boost::alignment::is_aligned(q, Alignment));
67 return boost::report_errors();