/* Copyright 2019 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) */ #include #include template struct A { }; template void test(A) { T v1 = N; BOOST_TEST(boost::alignment::is_aligned(v1, N)); T v2 = N - 1; BOOST_TEST(!boost::alignment::is_aligned(v2, N)); T v3 = N + 1; BOOST_TEST(!boost::alignment::is_aligned(v3, N)); T v4 = N + N; BOOST_TEST(boost::alignment::is_aligned(v4, N)); } template void test(A<1>) { T v = 1; BOOST_TEST(boost::alignment::is_aligned(v, 1)); } template void test() { test(A<1>()); test(A<2>()); test(A<4>()); test(A<8>()); test(A<16>()); test(A<32>()); test(A<64>()); test(A<128>()); } int main() { test(); test(); test(); test(); test(); test(); #if !defined(BOOST_NO_LONG_LONG) test(); test(); #endif test(); test(); return boost::report_errors(); }