map.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #include <boost/hana/assert.hpp>
  5. #include <boost/hana/experimental/printable.hpp>
  6. #include <boost/hana/integral_constant.hpp>
  7. #include <boost/hana/map.hpp>
  8. #include <boost/hana/pair.hpp>
  9. #include <sstream>
  10. #include <string>
  11. namespace hana = boost::hana;
  12. int main() {
  13. {
  14. std::ostringstream ss;
  15. ss << hana::experimental::print(
  16. hana::make_map()
  17. );
  18. BOOST_HANA_RUNTIME_CHECK(ss.str() == "{}");
  19. }
  20. {
  21. std::ostringstream ss;
  22. ss << hana::experimental::print(
  23. hana::make_map(hana::make_pair(hana::int_c<1>, 'x'))
  24. );
  25. BOOST_HANA_RUNTIME_CHECK(ss.str() == "{1 => x}");
  26. }
  27. {
  28. std::ostringstream ss;
  29. ss << hana::experimental::print(
  30. hana::make_map(hana::make_pair(hana::int_c<1>, 'x'),
  31. hana::make_pair(hana::int_c<2>, 'y'))
  32. );
  33. BOOST_HANA_RUNTIME_CHECK(ss.str() == "{1 => x, 2 => y}");
  34. }
  35. {
  36. std::ostringstream ss;
  37. ss << hana::experimental::print(
  38. hana::make_map(hana::make_pair(hana::int_c<1>, 'x'),
  39. hana::make_pair(hana::int_c<2>, 'y'),
  40. hana::make_pair(hana::int_c<3>, 'z'))
  41. );
  42. BOOST_HANA_RUNTIME_CHECK(ss.str() == "{1 => x, 2 => y, 3 => z}");
  43. }
  44. }