// // 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 #include #include template< class T > struct my_ptr_vector : public boost::ptr_sequence_adapter< std::vector > { }; template< class Key, class T, class Pred = std::less, class Allocator = std::allocator< std::pair > > struct my_map : public std::map { explicit my_map( const Pred& pred = Pred(), const Allocator& alloc = Allocator() ) { } }; #include struct Foo {}; typedef boost::ptr_map_adapter< my_map > foo_map; template< class Key, class T, class Pred = std::less > struct my_ptr_map : public boost::ptr_map_adapter< std::map > { }; typedef my_ptr_map foo_map2; int main() { my_ptr_vector vec; vec.push_back( new Foo ); foo_map m1; foo_map2 m2; std::string s(""); m1.insert( s, new Foo ); m2.insert( s, new Foo ); }