| |
| // Copyright 2008-2009 Daniel James. |
| // 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 "../helpers/prefix.hpp" |
| |
| #include <boost/unordered/unordered_map_fwd.hpp> |
| |
| typedef boost::unordered_map<int, int> int_map; |
| |
| void call_swap(int_map& x, int_map& y) { |
| swap(x,y); |
| } |
| |
| bool call_equals(int_map& x, int_map& y) { |
| return x == y; |
| } |
| |
| bool call_not_equals(int_map& x, int_map& y) { |
| return x != y; |
| } |
| |
| typedef boost::unordered_multimap<int, int> int_multimap; |
| |
| void call_swap(int_multimap& x, int_multimap& y) { |
| swap(x,y); |
| } |
| |
| bool call_equals(int_multimap& x, int_multimap& y) { |
| return x == y; |
| } |
| |
| bool call_not_equals(int_multimap& x, int_multimap& y) { |
| return x != y; |
| } |
| |
| #include <boost/unordered_map.hpp> |
| #include "../helpers/test.hpp" |
| |
| UNORDERED_AUTO_TEST(use_map_fwd_declared_function) { |
| int_map x, y; |
| x[1] = 2; |
| y[2] = 1; |
| call_swap(x, y); |
| |
| BOOST_TEST(y.find(1) != y.end() && y.find(1)->second == 2); |
| BOOST_TEST(y.find(2) == y.end()); |
| |
| BOOST_TEST(x.find(1) == x.end()); |
| BOOST_TEST(x.find(2) != x.end() && x.find(2)->second == 1); |
| |
| BOOST_TEST(!call_equals(x, y)); |
| BOOST_TEST(call_not_equals(x, y)); |
| } |
| |
| UNORDERED_AUTO_TEST(use_multimap_fwd_declared_function) { |
| int_multimap x, y; |
| call_swap(x, y); |
| BOOST_TEST(call_equals(x, y)); |
| BOOST_TEST(!call_not_equals(x, y)); |
| } |
| |
| RUN_TESTS() |