summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qstring.h
diff options
context:
space:
mode:
authorDennis Oberst <dennis.oberst@qt.io>2023-05-25 12:51:19 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-06-04 06:33:12 +0000
commit54d8d8055edafcd571fe190eb6077d14a6ff8ce1 (patch)
treec3f60a331e5c05fc67af902c0ea041c2d9da15cd /src/corelib/text/qstring.h
parentef1be84551ae1e131dbee8212fd1bd6064e889da (diff)
QString: add STL-style assign() [1/4]: non-(it,it) overloads
Implemented assign() methods for QString to align with the criteria of std::basic_string, addressing the previously missing functionality. This is a subset of the overloads provided by the standard. Reference: https://en.cppreference.com/w/cpp/string/basic_string/assign The assign(it, it) overload is a bit more complicated and will be added in follow-up patches. [ChangeLog][QtCore][QString] Added assign(). Task-number: QTBUG-106198 Change-Id: Ia1481d184865f46db872cf94c266fef83b962351 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/text/qstring.h')
-rw-r--r--src/corelib/text/qstring.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h
index 62eb64d775..71b712c3e9 100644
--- a/src/corelib/text/qstring.h
+++ b/src/corelib/text/qstring.h
@@ -36,6 +36,8 @@ Q_FORWARD_DECLARE_CF_TYPE(CFString);
Q_FORWARD_DECLARE_OBJC_CLASS(NSString);
#endif
+class tst_QString;
+
QT_BEGIN_NAMESPACE
class QRegularExpression;
@@ -116,6 +118,8 @@ constexpr QChar QAnyStringView::back() const
class Q_CORE_EXPORT QString
{
typedef QTypedArrayData<char16_t> Data;
+
+ friend class ::tst_QString;
public:
typedef QStringPrivate DataPointer;
@@ -375,6 +379,12 @@ public:
inline QString &prepend(QLatin1StringView s) { return insert(0, s); }
QString &prepend(QUtf8StringView s) { return insert(0, s); }
+ QString &assign(QAnyStringView s);
+ inline QString &assign(qsizetype n, QChar c)
+ {
+ Q_ASSERT(n >= 0);
+ return fill(c, n);
+ }
inline QString &operator+=(QChar c) { return append(c); }
inline QString &operator+=(const QString &s) { return append(s); }