Boost logo

Boost Users :

From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2006-12-19 05:46:40


Duane Murphy wrote:
> I'm trying to use boost::ptr_map<> and cannot get calls insert to compile.
>
> I'm on Mac OS X using gcc 3.3 with Xcode.
>
> Even the most basic code fails to compile:
>
> boost::ptr_map< in, int* > my_map;
> int * val = new int( 22 );
> my_map.insert( 1, val );

See http://www.boost.org/libs/ptr_container/doc/ptr_map_adapter.html

The first argument needs to be a reference:

int key = 1;
my_map.insert( key, new int(22) );

1.34 adds the followinf overload:

         template< class U >
         std::pair<iterator,bool>
         insert( const key_type& key, std::auto_ptr<U> x )

which does allow the key to be an rvalue (just don't create the auto_ptr
in the function call).

HTH

-Thorsten


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net