1 // Copyright Louis Dionne 2013-2017 2 // Distributed under the Boost Software License, Version 1.0. 3 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) 4 5 #include <boost/hana/assert.hpp> 6 #include <boost/hana/equal.hpp> 7 #include <boost/hana/integral_constant.hpp> 8 #include <boost/hana/type.hpp> 9 namespace hana = boost::hana; 10 11 12 struct T { }; 13 main()14int main() { 15 BOOST_HANA_CONSTANT_CHECK(hana::equal( 16 hana::alignof_(T{}), 17 hana::size_c<alignof(T)> 18 )); 19 20 BOOST_HANA_CONSTANT_CHECK(hana::equal( 21 hana::alignof_(hana::type_c<T>), 22 hana::size_c<alignof(T)> 23 )); 24 25 // make sure we don't read from non-constexpr variables 26 { 27 auto t = hana::type_c<T>; 28 auto x = 1; 29 constexpr auto r1 = hana::alignof_(t); (void)r1; 30 constexpr auto r2 = hana::alignof_(x); (void)r2; 31 } 32 } 33