Roll back and use dtl::value_init to maximize compatibility between std versions

This commit is contained in:
Ion Gaztañaga
2024-06-14 12:37:12 +02:00
parent 43ac22eff2
commit 2d097fe45c

View File

@ -1673,8 +1673,9 @@ class flat_map
iterator i = this->lower_bound(k);
// i->first is greater than or equivalent to k.
if (i == end() || key_comp()(k, (*i).first)){
impl_value_type v(k, mapped_type());
i = this->m_flat_tree.insert_equal(::boost::move(v));
dtl::value_init<mapped_type> m;
impl_value_type v(k, ::boost::move(m.m_t));
i = dtl::force_copy<iterator>(this->m_flat_tree.insert_equal(::boost::move(v)));
}
return (*i).second;
}
@ -1684,8 +1685,9 @@ class flat_map
iterator i = this->lower_bound(k);
// i->first is greater than or equivalent to k.
if (i == end() || key_comp()(k, (*i).first)) {
impl_value_type v(boost::move(k), mapped_type());
i = this->m_flat_tree.insert_equal(::boost::move(v));
dtl::value_init<mapped_type> m;
impl_value_type v(::boost::move(k), ::boost::move(m.m_t));
i = dtl::force_copy<iterator>(this->m_flat_tree.insert_equal(::boost::move(v)));
}
return (*i).second;
}