/* @copyright Louis Dionne 2015 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 #include #include #include #include using namespace boost::hana; int main() { { //! [make] using namespace std::literals; auto m = make( make(int_<1>, "foobar"s), make(type, 1234) ); //! [make] (void)m; }{ //! [make_map] using namespace std::literals; BOOST_HANA_RUNTIME_CHECK( make_map( make(int_<1>, "foobar"s), make(type, 1234) ) == make( make(int_<1>, "foobar"s), make(type, 1234) ) ); //! [make_map] }{ //! [comparable] using namespace std::literals; BOOST_HANA_RUNTIME_CHECK( make_map( pair(char_<'a'>, "foobar"s), pair(type, nullptr) ) == make_map( pair(type, (void*)0), pair(char_<'a'>, "foobar"s) ) ); //! [comparable] }{ //! [searchable] BOOST_HANA_CONSTEXPR_LAMBDA auto m = make_map( pair(type, 'i'), pair(type, 'f') ); BOOST_HANA_CONSTEXPR_CHECK(find(m, type) == just('i')); BOOST_HANA_CONSTEXPR_CHECK(find(m, type) == just('f')); BOOST_HANA_CONSTANT_CHECK(find(m, type) == nothing); BOOST_HANA_CONSTANT_CHECK(find(m, int_<3>) == nothing); //! [searchable] } }