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