diff options
Diffstat (limited to 'src/corelib/text/qstring.h')
-rw-r--r-- | src/corelib/text/qstring.h | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 3f15001ff8..a0c546e1f5 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -105,7 +105,11 @@ public: [[nodiscard]] inline QString arg(Args &&...args) const; [[nodiscard]] constexpr QLatin1Char at(qsizetype i) const - { return Q_ASSERT(i >= 0), Q_ASSERT(i < size()), QLatin1Char(m_data[i]); } + { + Q_ASSERT(i >= 0); + Q_ASSERT(i < size()); + return QLatin1Char(m_data[i]); + } [[nodiscard]] constexpr QLatin1Char operator[](qsizetype i) const { return at(i); } [[nodiscard]] constexpr QLatin1Char front() const { return at(0); } @@ -525,14 +529,11 @@ public: QChar fillChar = u' ') const; private: template <typename T> - struct is_convertible_to_view_or_qstring_helper - : std::integral_constant<bool, - std::is_convertible<T, QString>::value || - std::is_convertible<T, QStringView>::value || - std::is_convertible<T, QLatin1StringView>::value> {}; - template <typename T> - struct is_convertible_to_view_or_qstring - : is_convertible_to_view_or_qstring_helper<typename std::decay<T>::type> {}; + using is_convertible_to_view_or_qstring = std::disjunction< + std::is_convertible<T, QString>, + std::is_convertible<T, QStringView>, + std::is_convertible<T, QLatin1StringView> + >; public: template <typename...Args> [[nodiscard]] @@ -678,20 +679,20 @@ public: QString &insert(qsizetype i, QChar c); QString &insert(qsizetype i, const QChar *uc, qsizetype len); - inline QString &insert(qsizetype i, const QString &s) { return insert(i, s.constData(), s.length()); } - inline QString &insert(qsizetype i, QStringView v) { return insert(i, v.data(), v.length()); } + inline QString &insert(qsizetype i, const QString &s) { return insert(i, s.constData(), s.size()); } + inline QString &insert(qsizetype i, QStringView v) { return insert(i, v.data(), v.size()); } QString &insert(qsizetype i, QLatin1StringView s); QString &append(QChar c); QString &append(const QChar *uc, qsizetype len); QString &append(const QString &s); - inline QString &append(QStringView v) { return append(v.data(), v.length()); } + inline QString &append(QStringView v) { return append(v.data(), v.size()); } QString &append(QLatin1StringView s); inline QString &prepend(QChar c) { return insert(0, c); } inline QString &prepend(const QChar *uc, qsizetype len) { return insert(0, uc, len); } inline QString &prepend(const QString &s) { return insert(0, s); } - inline QString &prepend(QStringView v) { return prepend(v.data(), v.length()); } + inline QString &prepend(QStringView v) { return prepend(v.data(), v.size()); } inline QString &prepend(QLatin1StringView s) { return insert(0, s); } inline QString &operator+=(QChar c) { return append(c); } @@ -1192,7 +1193,7 @@ QString QLatin1StringView::toString() const { return *this; } // QString QStringView::toString() const -{ return Q_ASSERT(size() == length()), QString(data(), length()); } +{ return QString(data(), size()); } qint64 QStringView::toLongLong(bool *ok, int base) const { return QString::toIntegral_helper<qint64>(*this, ok, base); } @@ -1482,7 +1483,7 @@ inline QString QString::fromStdString(const std::string &s) inline std::wstring QString::toStdWString() const { std::wstring str; - str.resize(length()); + str.resize(size()); str.resize(toWCharArray(str.data())); return str; } @@ -1494,16 +1495,16 @@ inline QString QString::fromStdU16String(const std::u16string &s) { return fromUtf16(s.data(), qsizetype(s.size())); } inline std::u16string QString::toStdU16String() const -{ return std::u16string(reinterpret_cast<const char16_t*>(data()), length()); } +{ return std::u16string(reinterpret_cast<const char16_t*>(data()), size()); } inline QString QString::fromStdU32String(const std::u32string &s) { return fromUcs4(s.data(), qsizetype(s.size())); } inline std::u32string QString::toStdU32String() const { - std::u32string u32str(length(), char32_t(0)); + std::u32string u32str(size(), char32_t(0)); qsizetype len = toUcs4_helper(reinterpret_cast<const ushort *>(constData()), - length(), reinterpret_cast<uint*>(&u32str[0])); + size(), reinterpret_cast<uint*>(&u32str[0])); u32str.resize(len); return u32str; } @@ -1520,9 +1521,9 @@ inline int QString::compare(QStringView s, Qt::CaseSensitivity cs) const noexcep { return -s.compare(*this, cs); } inline int QString::localeAwareCompare(QStringView s) const -{ return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } +{ return localeAwareCompare_helper(constData(), size(), s.constData(), s.size()); } inline int QString::localeAwareCompare(QStringView s1, QStringView s2) -{ return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } +{ return localeAwareCompare_helper(s1.constData(), s1.size(), s2.constData(), s2.size()); } inline int QStringView::localeAwareCompare(QStringView other) const { return QString::localeAwareCompare(*this, other); } |