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 9 #include <laws/base.hpp> 10 namespace hana = boost::hana; 11 12 13 struct undefined { }; 14 main()15int main() { 16 hana::test::_injection<0> f{}; 17 hana::test::ct_eq<2> x{}; 18 19 BOOST_HANA_CONSTANT_CHECK(hana::equal( 20 hana::maybe(x, undefined{}, hana::nothing), 21 x 22 )); 23 24 BOOST_HANA_CONSTANT_CHECK(hana::equal( 25 hana::maybe(undefined{}, f, hana::just(x)), 26 f(x) 27 )); 28 } 29