diff --git a/src/libs/utils/smallstring.h b/src/libs/utils/smallstring.h index 7167be47992..9e7ad9fb692 100644 --- a/src/libs/utils/smallstring.h +++ b/src/libs/utils/smallstring.h @@ -887,5 +887,38 @@ QDataStream &operator>>(QDataStream &in, unordered_map, + typename KeyEqual = std::equal_to, + typename Allocator = std::allocator>> +std::unordered_map +clone(const std::unordered_map &map) +{ + std::unordered_map clonedMap; + clonedMap.reserve(clonedMap.size()); + + for (auto &&entry : map) + clonedMap.emplace(entry.first, entry.second.clone()); + + return clonedMap; +} + +template +std::vector clone(const std::vector &vector) +{ + std::vector clonedVector; + clonedVector.reserve(vector.size()); + + for (auto &&entry : vector) + clonedVector.push_back(entry.clone()); + + return clonedVector; +} + +} // namespace Utils + #pragma pop_macro("noexcept") #pragma pop_macro("constexpr") diff --git a/src/libs/utils/smallstringvector.h b/src/libs/utils/smallstringvector.h index 95ae44356c8..897bcef84fb 100644 --- a/src/libs/utils/smallstringvector.h +++ b/src/libs/utils/smallstringvector.h @@ -148,18 +148,6 @@ private: } }; -template -std::vector clone(const std::vector &vector) -{ - std::vector clonedVector; - clonedVector.reserve(vector.size()); - - for (auto &&entry : vector) - clonedVector.push_back(entry.clone()); - - return clonedVector; -} - inline QDataStream &operator<<(QDataStream &out, const SmallStringVector &stringVector) { out << quint64(stringVector.size());