diff -r 000000000000 -r e4d67989cc36 stdcpp/tsrc/Boost_test/ptr_container/src/ptr_set.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stdcpp/tsrc/Boost_test/ptr_container/src/ptr_set.cpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,61 @@ +// +// 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 ); + + +} + +#include +int test_main(int,char *[]) +{ + +test_set(); + return 0; +} + + + + + +