Boost logo

Boost :

From: Daniel Wallin (dalwan01_at_[hidden])
Date: 2005-10-10 02:50:01


Jeff Garland wrote:
> On Fri, 7 Oct 2005 17:43:44 +0000 (UTC), Thorsten Ottosen wrote
>
>>>ptr_map<>::insert(key, value) function is taking first argument by non-const
>>>reference. Is it missing 'const' there?
>>
>>No, its an exception-safety issue. if evaluating the first
>>expression could throw, we could leak.
>
>
> Sorry to be slow, but how does const impact that -- just to prevent automatic
> conversion of keys from throwing?

If that's the case; wouldn't a better solution be to make insert() a
template and delay the conversion until after the pointer is protected?

  template<class K>
  std::pair<iterator,bool> insert( K const& key, value_type x );

-- 
Daniel Wallin

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk