// Copyright Louis Dionne 2013-2017 // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) #include #include #include #include // for operator != #include namespace hana = boost::hana; struct T; struct U; int main() { BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::type_c, hana::type_c)); BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(hana::type_c, hana::type_c))); BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(hana::type_c, hana::type_c))); BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(hana::type_c, hana::type_c))); BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::type_c, hana::type_c)); BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::type_c, hana::type_c)); BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(hana::type_c, hana::type_c))); BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(hana::type_c, hana::type_c))); BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::type_c, hana::type_c)); // make sure we don't read from a non-constexpr variable in hana::equal auto t = hana::type_c; static_assert(hana::equal(t, hana::type_c), ""); // check operators BOOST_HANA_CONSTANT_CHECK(hana::type_c == hana::type_c); BOOST_HANA_CONSTANT_CHECK(hana::type_c != hana::type_c); }