diff --git a/src/libs/utils/smallstringio.h b/src/libs/utils/smallstringio.h index e212fc85672..dabb444912a 100644 --- a/src/libs/utils/smallstringio.h +++ b/src/libs/utils/smallstringio.h @@ -113,8 +113,8 @@ void PrintTo(const BasicSmallString &string, ::std::ostream *os) *os<< "'"; } -template -QDataStream &operator<<(QDataStream &out, const BasicSmallStringVector &stringVector) +template +QDataStream &operator<<(QDataStream &out, const BasicSmallStringVector &stringVector) { out << quint64(stringVector.size()); @@ -124,8 +124,8 @@ QDataStream &operator<<(QDataStream &out, const BasicSmallStringVector &s return out; } -template -QDataStream &operator>>(QDataStream &in, BasicSmallStringVector &stringVector) +template +QDataStream &operator>>(QDataStream &in, BasicSmallStringVector &stringVector) { stringVector.clear(); @@ -136,7 +136,7 @@ QDataStream &operator>>(QDataStream &in, BasicSmallStringVector &stringVe stringVector.reserve(size); for (quint64 i = 0; i < size; ++i) { - BasicSmallString string; + String string; in >> string; @@ -146,18 +146,18 @@ QDataStream &operator>>(QDataStream &in, BasicSmallStringVector &stringVe return in; } -template -QDebug operator<<(QDebug debug, const BasicSmallStringVector &stringVector) +template +QDebug operator<<(QDebug debug, const BasicSmallStringVector &stringVector) { - debug << "StringVector(" << stringVector.join(BasicSmallString(", ")).constData() << ")"; + debug << "StringVector(" << stringVector.join(", ").constData() << ")"; return debug; } -template -void PrintTo(const BasicSmallStringVector &textVector, ::std::ostream* os) +template +void PrintTo(const BasicSmallStringVector &textVector, ::std::ostream* os) { - *os << "[" << textVector.join(BasicSmallString(", ")).constData() << "]"; + *os << "[" << textVector.join(", ").constData() << "]"; } } // namespace Utils diff --git a/src/libs/utils/smallstringvector.h b/src/libs/utils/smallstringvector.h index 700a333ffb8..67290b0f5cc 100644 --- a/src/libs/utils/smallstringvector.h +++ b/src/libs/utils/smallstringvector.h @@ -35,25 +35,27 @@ namespace Utils { -template -class BasicSmallStringVector : public std::vector> +template +class BasicSmallStringVector : public std::vector { - using SmallString = BasicSmallString; - using Base = std::vector; + using Base = std::vector; + public: BasicSmallStringVector() = default; + using Base::Base; + explicit BasicSmallStringVector(const Base &stringVector) : Base(stringVector.begin(), stringVector.end()) { } - BasicSmallStringVector(std::initializer_list list) + BasicSmallStringVector(std::initializer_list list) { Base::reserve(list.size()); for (auto &&entry : list) - Base::push_back(entry.clone()); + Base::push_back(std::move(entry)); } explicit BasicSmallStringVector(const QStringList &stringList) @@ -79,7 +81,7 @@ public: BasicSmallStringVector &operator=(BasicSmallStringVector &&) noexcept(std::is_nothrow_move_assignable::value) = default; - SmallString join(SmallString &&separator) const + SmallString join(SmallStringView separator) const { SmallString joinedString; @@ -110,7 +112,7 @@ public: return hasEntry; } - void append(SmallString &&string) + void append(String &&string) { push_back(std::move(string)); } @@ -153,6 +155,9 @@ private: } }; -using SmallStringVector = BasicSmallStringVector<31>; -using PathStringVector = BasicSmallStringVector<190>; + + +using SmallStringVector = BasicSmallStringVector>; +using PathStringVector = BasicSmallStringVector>; +using StringViewVector = BasicSmallStringVector; } // namespace Utils;