path: root/src/corelib/tools/qstringview.h
diff options
authorMarc Mutz <>2017-04-12 09:52:24 +0200
committerMarc Mutz <>2017-04-19 12:31:33 +0000
commitba5db13c8d197706ac3dec5d351b6684f809f2e4 (patch)
tree1f0d71ab804735d2fad67db3aa57194ff1e63da4 /src/corelib/tools/qstringview.h
parentb3e66c76aaadb979bec487869ce1fb7ee056b517 (diff)
QStringView: add internal qToStringViewIgnoringNull()
As long as a null QString still returns non-null data(), QStringView's QString constructor needs to call isNull(). That's a branch we often can do without, so add an internal function that bypasses this correctness check. It's internal, since we might have a Q6String that returns nullptr data() when null, which will remove the need for this function. What the QStringView(QString) ctor does will also have to be re-evaluated come Qt 6, but for now, keep the public QString- QStringView conversion correct. Change-Id: I35dc7383bc3bd018f46aeec429185135a38ddcef Reviewed-by: Lars Knoll <> Reviewed-by: Edward Welbourne <>
Diffstat (limited to 'src/corelib/tools/qstringview.h')
1 files changed, 6 insertions, 0 deletions
diff --git a/src/corelib/tools/qstringview.h b/src/corelib/tools/qstringview.h
index 7aef056dee..54d054baaa 100644
--- a/src/corelib/tools/qstringview.h
+++ b/src/corelib/tools/qstringview.h
@@ -272,6 +272,12 @@ private:
+template <typename QStringLike, typename std::enable_if<
+ std::is_same<QStringLike, QString>::value || std::is_same<QStringLike, QStringRef>::value,
+ bool>::type = true>
+inline QStringView qToStringViewIgnoringNull(const QStringLike &s) Q_DECL_NOTHROW
+{ return QStringView(, s.size()); }
#endif /* QSTRINGVIEW_H */