/*============================================================================= Copyright (c) 2001-2011 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #include #include #include #include #include #include #include #include #include #include #include #include int main() { using namespace boost::fusion; using namespace boost; std::cout << tuple_open('['); std::cout << tuple_close(']'); std::cout << tuple_delimiter(", "); { vector0<> empty; std::cout << as_map(make_list(make_pair('X'), make_pair("Men"))) << std::endl; std::cout << as_map(push_back(empty, make_pair(999))) << std::endl; } { typedef pair p1; typedef pair p2; boost::fusion::result_of::as_map >::type map(make_pair('X'), make_pair("Men")); std::cout << at_key(map) << std::endl; std::cout << at_key(map) << std::endl; BOOST_TEST(at_key(map) == 'X'); BOOST_TEST(at_key(map) == "Men"); } { // test conversion typedef map< pair , pair > map_type; map_type m(make_vector(make_pair('X'), make_pair("Men"))); BOOST_TEST(as_vector(m) == make_vector(make_pair('X'), make_pair("Men"))); m = (make_vector(make_pair('X'), make_pair("Men"))); // test assign BOOST_TEST(as_vector(m) == make_vector(make_pair('X'), make_pair("Men"))); } return boost::report_errors(); }