1 // Copyright (c) 2007 Joseph Gauterin 2 // 3 // Distributed under the Boost Software License, Version 1.0. 4 // (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 #include <boost/utility/swap.hpp> 8 #include <boost/core/lightweight_test.hpp> 9 #define BOOST_CHECK BOOST_TEST 10 #define BOOST_CHECK_EQUAL BOOST_TEST_EQ 11 12 //Put test class in the global namespace 13 #include "./swap_test_class.hpp" 14 15 //Provide swap function in gloabl namespace swap(swap_test_class & left,swap_test_class & right)16void swap(swap_test_class& left, swap_test_class& right) 17 { 18 left.swap(right); 19 } 20 main()21int main() 22 { 23 const swap_test_class initial_value1(1); 24 const swap_test_class initial_value2(2); 25 26 swap_test_class object1 = initial_value1; 27 swap_test_class object2 = initial_value2; 28 29 swap_test_class::reset(); 30 boost::swap(object1,object2); 31 32 BOOST_CHECK(object1 == initial_value2); 33 BOOST_CHECK(object2 == initial_value1); 34 35 BOOST_CHECK_EQUAL(swap_test_class::swap_count(),1); 36 BOOST_CHECK_EQUAL(swap_test_class::copy_count(),0); 37 38 return boost::report_errors(); 39 } 40 41