// // Boost.Pointer Container // // Copyright Thorsten Ottosen 2003-2005. Use, modification and // distribution is subject to 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) // // For more information, see http://www.boost.org/libs/ptr_container/ // #include #include "associative_test_data.hpp" #include template< class SetDerived, class SetBase, class T > void test_transfer() { SetBase to; SetDerived from; from.insert( new T ); from.insert( new T ); transfer_test( from, to ); } void test_set() { ptr_set_test< ptr_set, Base, Derived_class >(); ptr_set_test< ptr_set, Value, Value >(); ptr_set_test< ptr_multiset, Base, Derived_class >(); ptr_set_test< ptr_multiset, Value, Value >(); test_transfer< ptr_set, ptr_set, Derived_class>(); test_transfer< ptr_multiset, ptr_multiset, Derived_class>(); ptr_set set; BOOST_CHECK_THROW( set.insert( 0 ), bad_ptr_container_operation ); set.insert( new int(0) ); set.insert( std::auto_ptr( new int(1) ) ); BOOST_CHECK_THROW( (set.replace(set.begin(), 0 )), bad_ptr_container_operation ); BOOST_CHECK_THROW( (set.replace(set.begin(), std::auto_ptr(0) )), bad_ptr_container_operation ); } using boost::unit_test::test_suite; test_suite* init_unit_test_suite( int argc, char* argv[] ) { test_suite* test = BOOST_TEST_SUITE( "Pointer Container Test Suite" ); test->add( BOOST_TEST_CASE( &test_set ) ); return test; }