mirror of
https://github.com/boostorg/unordered.git
synced 2025-10-05 04:01:03 +02:00
Use normal emplace implementation for emplace_hint and insert with hint.
There's a bug in the emplace_hint implementation for unordered containers with equivalent keys. Since my tests missed it, I'm just going to use the normal emplace implementation until I write better tests. [SVN r57005]
This commit is contained in:
@@ -311,7 +311,7 @@ namespace boost
|
||||
template < \
|
||||
BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \
|
||||
> \
|
||||
iterator emplace_hint(const_iterator hint, \
|
||||
iterator emplace_hint(const_iterator, \
|
||||
BOOST_UNORDERED_FUNCTION_PARAMS(z, n) \
|
||||
) \
|
||||
{ \
|
||||
@@ -332,7 +332,7 @@ namespace boost
|
||||
table_.emplace(obj));
|
||||
}
|
||||
|
||||
iterator insert(const_iterator hint, const value_type& obj)
|
||||
iterator insert(const_iterator, const value_type& obj)
|
||||
{
|
||||
return iterator(table_.emplace(obj).first);
|
||||
}
|
||||
@@ -776,10 +776,9 @@ namespace boost
|
||||
}
|
||||
|
||||
template <class... Args>
|
||||
iterator emplace_hint(const_iterator hint, Args&&... args)
|
||||
iterator emplace_hint(const_iterator, Args&&... args)
|
||||
{
|
||||
return iterator(table_.emplace_hint(get(hint),
|
||||
std::forward<Args>(args)...));
|
||||
return iterator(table_.emplace(std::forward<Args>(args)...));
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -788,10 +787,10 @@ namespace boost
|
||||
return iterator(table_.emplace(v));
|
||||
}
|
||||
|
||||
iterator emplace_hint(const_iterator hint,
|
||||
iterator emplace_hint(const_iterator,
|
||||
value_type const& v = value_type())
|
||||
{
|
||||
return iterator(table_.emplace_hint(get(hint), v));
|
||||
return iterator(table_.emplace(v));
|
||||
}
|
||||
|
||||
|
||||
@@ -812,11 +811,11 @@ namespace boost
|
||||
template < \
|
||||
BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \
|
||||
> \
|
||||
iterator emplace_hint(const_iterator hint, \
|
||||
iterator emplace_hint(const_iterator, \
|
||||
BOOST_UNORDERED_FUNCTION_PARAMS(z, n) \
|
||||
) \
|
||||
{ \
|
||||
return iterator(table_.emplace_hint(get(hint), \
|
||||
return iterator(table_.emplace( \
|
||||
BOOST_UNORDERED_CALL_PARAMS(z, n) \
|
||||
)); \
|
||||
}
|
||||
@@ -833,9 +832,9 @@ namespace boost
|
||||
return iterator(table_.emplace(obj));
|
||||
}
|
||||
|
||||
iterator insert(const_iterator hint, const value_type& obj)
|
||||
iterator insert(const_iterator, const value_type& obj)
|
||||
{
|
||||
return iterator(table_.emplace_hint(get(hint), obj));
|
||||
return iterator(table_.emplace(obj));
|
||||
}
|
||||
|
||||
template <class InputIt>
|
||||
|
Reference in New Issue
Block a user