diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2019-06-18 20:11:18 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2019-07-09 07:09:44 +0200 |
commit | 60ca2f5f7c38178cfe62d3dbe1b8dacfe43cbac9 (patch) | |
tree | e910b6b5e8f5c28885053d329d2b996989ee2fd9 /src/corelib/tools/qstring.h | |
parent | 36f6bd7cf007c27772de5725791b7bc9040a041d (diff) |
Be less laissez-faire with implicit conversions to QChar
QChar currently is convertible from nearly every integral type. This
is bad code hygiene and should be fixed come Qt 6.
The present patch is the result of compile fixes from marking these
constructors explicit. As is clear from the distribution of fixes,
only low-level string handling code used these implicit conversions,
an indication that they're not in widespread use elsewhere.
Change-Id: Ief5336f21e6d181e03ab92893b3d13a14adc7cb0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/tools/qstring.h')
-rw-r--r-- | src/corelib/tools/qstring.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index 6788e53057..9896553f7d 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -1002,11 +1002,11 @@ inline QString::QString(QLatin1String aLatin1) : d(fromLatin1_helper(aLatin1.lat inline int QString::length() const { return d->size; } inline const QChar QString::at(int i) const -{ Q_ASSERT(uint(i) < uint(size())); return d->data()[i]; } +{ Q_ASSERT(uint(i) < uint(size())); return QChar(d->data()[i]); } inline const QChar QString::operator[](int i) const -{ Q_ASSERT(uint(i) < uint(size())); return d->data()[i]; } +{ Q_ASSERT(uint(i) < uint(size())); return QChar(d->data()[i]); } inline const QChar QString::operator[](uint i) const -{ Q_ASSERT(i < uint(size())); return d->data()[i]; } +{ Q_ASSERT(i < uint(size())); return QChar(d->data()[i]); } inline bool QString::isEmpty() const { return d->size == 0; } inline const QChar *QString::unicode() const @@ -1118,11 +1118,11 @@ public: { using namespace QtPrivate::DeprecatedRefClassBehavior; if (Q_LIKELY(i < s.d->size)) - return s.d->data()[i]; + return QChar(s.d->data()[i]); #ifdef QT_DEBUG warn(WarningType::OutOfRange, EmittingClass::QCharRef); #endif - return 0; + return QChar(); } inline QCharRef &operator=(QChar c) { |