Modify

Opened 2 years ago

Closed 16 months ago

#11820 closed Bugs (fixed)

compilier error when using operator[] of map

Reported by: anonymous Owned by: Ion Gaztañaga
Milestone: To Be Determined Component: container
Version: Boost 1.59.0 Severity: Problem
Keywords: Cc:

Description

  1. I've define a map with specific Allocator, map<key, value, less, MyAllocator?>
  2. if I call operator[] of this map, it will not find the right allocator

mapped_type& priv_subscript(BOOST_RV_REF(key_type) mk)

{

key_type &k = mk; we can optimize this iterator i = this->lower_bound(k); i->first is greater than or equivalent to k.

if (i == this->end()
this->key_comp()(k, (*i).first)){

container_detail::value_init<mapped_type> m; movable_value_type val(boost::move(k), boost::move(m.m_t)); i = insert(i, boost::move(val));

} return (*i).second;

}

  1. because of this code " movable_value_type val(boost::move(k), boost::move(m.m_t)); "

it will not new the right pair with right allocator when using operator[]

Attachments (0)

Change History (3)

comment:1 Changed 2 years ago by viboes

Component: Nonecontainer
Owner: set to Ion Gaztañaga

comment:2 Changed 2 years ago by Ion Gaztañaga

Thanks for the report. Can you check the following commit fixes your problem?

https://github.com/boostorg/container/commit/a3262c0ae75280f59ae7e9baa960e6873a5ae57f

comment:3 Changed 16 months ago by Ion Gaztañaga

Resolution: fixed
Status: newclosed

Closed bug as no confirmation was obtained by the reporter.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Ion Gaztañaga.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.