aboutsummaryrefslogtreecommitdiff
path: root/include/flat_map.h
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-04-18 04:37:51 +0100
committerGravatar Sadie Powell2021-04-18 04:58:28 +0100
commit569324feeecea939854e45bbd44495b849fcfd59 (patch)
tree38008340f746112ab17ebb8368f090aeac10aabd /include/flat_map.h
parentMake the reason parameter to PartUser const. (diff)
Migrate collections from insert to emplace.
Diffstat (limited to 'include/flat_map.h')
-rw-r--r--include/flat_map.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/include/flat_map.h b/include/flat_map.h
index ffa313bef..f735ca669 100644
--- a/include/flat_map.h
+++ b/include/flat_map.h
@@ -233,6 +233,12 @@ class flat_set : public detail::flat_map_base<T, Comp, T, ElementComp>
flat_set& operator=(const flat_set& other) = default;
+ template <typename... Args>
+ std::pair<iterator, bool> emplace(Args&&... args)
+ {
+ return insert(value_type(std::forward<Args>(args)...));
+ }
+
std::pair<iterator, bool> insert(const value_type& x)
{
return this->insert_single(x);
@@ -281,6 +287,12 @@ class flat_multiset : public detail::flat_map_base<T, Comp, T, ElementComp>
flat_multiset& operator=(const flat_multiset& other) = default;
+ template <typename... Args>
+ iterator emplace(Args&&... args)
+ {
+ return insert(value_type(std::forward<Args>(args)...));
+ }
+
iterator insert(const value_type& x)
{
return this->insert_multi(x);
@@ -332,6 +344,12 @@ class flat_map : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::
flat_map& operator=(const flat_map& other) = default;
+ template <typename... Args>
+ std::pair<iterator, bool> emplace(Args&&... args)
+ {
+ return insert(value_type(std::forward<Args>(args)...));
+ }
+
std::pair<iterator, bool> insert(const value_type& x)
{
return this->insert_single(x);
@@ -351,7 +369,7 @@ class flat_map : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::
mapped_type& operator[](const key_type& x)
{
- return insert(std::make_pair(x, mapped_type())).first->second;
+ return insert(value_type(x, mapped_type())).first->second;
}
value_compare value_comp() const
@@ -392,6 +410,12 @@ class flat_multimap : public detail::flat_map_base<std::pair<T, U>, Comp, T, det
flat_multimap& operator=(const flat_multimap& other) = default;
+ template <typename... Args>
+ iterator emplace(Args&&... args)
+ {
+ return insert(value_type(std::forward<Args>(args)...));
+ }
+
iterator insert(const value_type& x)
{
return this->insert_multi(x);