summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qstring.h
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2022-02-24 14:26:05 +0100
committerSona Kurazyan <sona.kurazyan@qt.io>2022-03-02 22:22:36 +0100
commit736213bf662b68c4e80075cef317e5a029b490dd (patch)
treeb0d01bafb6902501f754d985effcdb8ce7c1bf3a /src/corelib/text/qstring.h
parent0e64165c2e7b14502a578f3508e5544b035e404e (diff)
QLatin1String: add missing APIs for compatibility with Qt string views
As a drive-by, fixed misleading wording used in docs. [ChangeLog][QtCore][Potentially Source-Incompatible Changes][QLatin1String] Added QLatin1String(std::nullptr_t) constructor, which makes QLatin1String(0) call ambiguous. To fix the ambiguity, nullptr must be passed instead of 0. Task-number: QTBUG-98433 Change-Id: I2b888aa23469343d78aa640dc39a6028b77165dd Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/text/qstring.h')
-rw-r--r--src/corelib/text/qstring.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h
index 40e023be83..1c95b038c6 100644
--- a/src/corelib/text/qstring.h
+++ b/src/corelib/text/qstring.h
@@ -84,6 +84,7 @@ class QLatin1String
{
public:
constexpr inline QLatin1String() noexcept : m_size(0), m_data(nullptr) {}
+ constexpr QLatin1String(std::nullptr_t) noexcept : QLatin1String() {}
constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? qsizetype(strlen(s)) : 0), m_data(s) {}
constexpr explicit QLatin1String(const char *f, const char *l)
: QLatin1String(f, qsizetype(l - f)) {}
@@ -96,10 +97,20 @@ public:
constexpr const char *latin1() const noexcept { return m_data; }
constexpr qsizetype size() const noexcept { return m_size; }
constexpr const char *data() const noexcept { return m_data; }
+ [[nodiscard]] constexpr const char *constData() const noexcept { return data(); }
+ [[nodiscard]] constexpr const char *constBegin() const noexcept { return begin(); }
+ [[nodiscard]] constexpr const char *constEnd() const noexcept { return end(); }
+
+ [[nodiscard]] constexpr QLatin1Char first() const { return front(); }
+ [[nodiscard]] constexpr QLatin1Char last() const { return back(); }
+
+ [[nodiscard]] constexpr qsizetype length() const noexcept { return size(); }
constexpr bool isNull() const noexcept { return !data(); }
constexpr bool isEmpty() const noexcept { return !size(); }
+ [[nodiscard]] constexpr bool empty() const noexcept { return size() == 0; }
+
template <typename...Args>
[[nodiscard]] inline QString arg(Args &&...args) const;