tuple_list_of.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Boost.Assign library
  2. //
  3. // Copyright Thorsten Ottosen 2003-2004. Use, modification and
  4. // distribution is subject to the Boost Software License, Version
  5. // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. //
  8. // For more information, see http://www.boost.org/libs/assign/
  9. //
  10. #include <boost/detail/workaround.hpp>
  11. #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
  12. # pragma warn -8091 // suppress warning in Boost.Test
  13. # pragma warn -8057 // unused argument argc/argv in Boost.Test
  14. #endif
  15. #include <boost/assign/list_of.hpp>
  16. #include <boost/test/test_tools.hpp>
  17. #include <algorithm>
  18. #include <iostream>
  19. #include <string>
  20. #include <vector>
  21. #include <map>
  22. void check_tuple_list_of()
  23. {
  24. using namespace boost::assign;
  25. typedef boost::tuple<int,std::string,int> tuple;
  26. std::vector<tuple> v = tuple_list_of( 1, "foo", 2 )( 3, "bar", 4 );
  27. BOOST_CHECK( v.size() == 2 );
  28. BOOST_CHECK( boost::get<0>( v[1] ) == 3 );
  29. std::map<std::string,int> m = pair_list_of( "foo", 3 )( "bar", 5 );
  30. BOOST_CHECK( m.size() == 2 );
  31. BOOST_CHECK( m["foo"] == 3 );
  32. }
  33. #include <boost/test/unit_test.hpp>
  34. using boost::unit_test::test_suite;
  35. test_suite* init_unit_test_suite( int argc, char* argv[] )
  36. {
  37. test_suite* test = BOOST_TEST_SUITE( "List Test Suite" );
  38. test->add( BOOST_TEST_CASE( &check_tuple_list_of ) );
  39. return test;
  40. }