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/optional.hpp> 8 #include <boost/hana/ap.hpp> 9 10 #include <laws/base.hpp> 11 namespace hana = boost::hana; 12 using hana::test::ct_eq; 13 14 main()15int main() { 16 hana::test::_injection<0> f{}; 17 18 BOOST_HANA_CONSTANT_CHECK(hana::equal( 19 hana::ap(hana::nothing, hana::nothing), 20 hana::nothing 21 )); 22 BOOST_HANA_CONSTANT_CHECK(hana::equal( 23 hana::ap(hana::just(f), hana::nothing), 24 hana::nothing 25 )); 26 BOOST_HANA_CONSTANT_CHECK(hana::equal( 27 hana::ap(hana::nothing, hana::just(ct_eq<3>{})), 28 hana::nothing 29 )); 30 BOOST_HANA_CONSTANT_CHECK(hana::equal( 31 hana::ap(hana::just(f), hana::just(ct_eq<3>{})), 32 hana::just(f(ct_eq<3>{})) 33 )); 34 } 35