mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-31 11:57:15 +02:00
Fix try_emplace overload
This commit is contained in:
@ -563,12 +563,10 @@ template <class K, class T, class H, class P, class A> class unordered_map
|
|||||||
iterator try_emplace(const_iterator hint, key_type const& k,
|
iterator try_emplace(const_iterator hint, key_type const& k,
|
||||||
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
||||||
{
|
{
|
||||||
return table_
|
return table_.try_emplace_hint_unique(
|
||||||
.try_emplace_unique(
|
hint, k, boost::unordered::detail::create_emplace_args(
|
||||||
hint, k, boost::unordered::detail::create_emplace_args(
|
boost::forward<A0>(a0), boost::forward<A1>(a1),
|
||||||
boost::forward<A0>(a0), boost::forward<A1>(a1),
|
boost::forward<A2>(a2)));
|
||||||
boost::forward<A2>(a2)))
|
|
||||||
.first;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// try_emplace(key&&, Args&&...)
|
// try_emplace(key&&, Args&&...)
|
||||||
|
@ -1172,6 +1172,23 @@ UNORDERED_AUTO_TEST(map_emplace_test2)
|
|||||||
BOOST_TEST(x.find(overloaded_constructor(2, 3)) != x.end() &&
|
BOOST_TEST(x.find(overloaded_constructor(2, 3)) != x.end() &&
|
||||||
x.find(overloaded_constructor(2, 3))->second ==
|
x.find(overloaded_constructor(2, 3))->second ==
|
||||||
overloaded_constructor(4, 5, 6));
|
overloaded_constructor(4, 5, 6));
|
||||||
|
|
||||||
|
x.clear();
|
||||||
|
|
||||||
|
x.try_emplace(x.begin(), overloaded_constructor());
|
||||||
|
BOOST_TEST(x.find(overloaded_constructor()) != x.end() &&
|
||||||
|
x.find(overloaded_constructor())->second ==
|
||||||
|
overloaded_constructor());
|
||||||
|
|
||||||
|
x.try_emplace(x.end(), 1);
|
||||||
|
BOOST_TEST(x.find(overloaded_constructor(1)) != x.end() &&
|
||||||
|
x.find(overloaded_constructor(1))->second ==
|
||||||
|
overloaded_constructor());
|
||||||
|
|
||||||
|
x.try_emplace(x.begin(), overloaded_constructor(2, 3), 4, 5, 6);
|
||||||
|
BOOST_TEST(x.find(overloaded_constructor(2, 3)) != x.end() &&
|
||||||
|
x.find(overloaded_constructor(2, 3))->second ==
|
||||||
|
overloaded_constructor(4, 5, 6));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user