QString/QByteArray: de-pessimize op+ [1/2]: non-const return types
const return types prevent move semantics, so drop the const. This is BC, because the operators are all inline free functions. In particular, they're not exported (MSVC mangles the return type). [ChangeLog][QtCore][QString/QByteArray] operator+ no longer returns a const object, enabling move-semantics on the return value, but also hidden detaches. Change-Id: Ifc18f6b1df1e3840f57b2521949dbade8e11fd76 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
9204ac23a0
commit
5d41ec46e9
@ -3485,7 +3485,7 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
|
||||
\sa QByteArray::compare()
|
||||
*/
|
||||
|
||||
/*! \fn const QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
|
||||
/*! \fn QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
|
||||
\relates QByteArray
|
||||
|
||||
Returns a byte array that is the result of concatenating byte
|
||||
@ -3494,7 +3494,7 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
|
||||
\sa QByteArray::operator+=()
|
||||
*/
|
||||
|
||||
/*! \fn const QByteArray operator+(const QByteArray &a1, const char *a2)
|
||||
/*! \fn QByteArray operator+(const QByteArray &a1, const char *a2)
|
||||
\relates QByteArray
|
||||
|
||||
\overload
|
||||
@ -3503,7 +3503,7 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
|
||||
and '\\0'-terminated string \a a2.
|
||||
*/
|
||||
|
||||
/*! \fn const QByteArray operator+(const QByteArray &a1, char a2)
|
||||
/*! \fn QByteArray operator+(const QByteArray &a1, char a2)
|
||||
\relates QByteArray
|
||||
|
||||
\overload
|
||||
@ -3512,7 +3512,7 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
|
||||
array \a a1 and byte \a a2.
|
||||
*/
|
||||
|
||||
/*! \fn const QByteArray operator+(const char *a1, const QByteArray &a2)
|
||||
/*! \fn QByteArray operator+(const char *a1, const QByteArray &a2)
|
||||
\relates QByteArray
|
||||
|
||||
\overload
|
||||
@ -3521,7 +3521,7 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
|
||||
string \a a1 and byte array \a a2.
|
||||
*/
|
||||
|
||||
/*! \fn const QByteArray operator+(char a1, const QByteArray &a2)
|
||||
/*! \fn QByteArray operator+(char a1, const QByteArray &a2)
|
||||
\relates QByteArray
|
||||
|
||||
\overload
|
||||
|
@ -547,15 +547,15 @@ inline int QByteArray::compare(QByteArrayView a, Qt::CaseSensitivity cs) const n
|
||||
qstrnicmp(data(), size(), a.data(), a.size());
|
||||
}
|
||||
#if !defined(QT_USE_QSTRINGBUILDER)
|
||||
inline const QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
|
||||
inline QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
|
||||
{ return QByteArray(a1) += a2; }
|
||||
inline const QByteArray operator+(const QByteArray &a1, const char *a2)
|
||||
inline QByteArray operator+(const QByteArray &a1, const char *a2)
|
||||
{ return QByteArray(a1) += a2; }
|
||||
inline const QByteArray operator+(const QByteArray &a1, char a2)
|
||||
inline QByteArray operator+(const QByteArray &a1, char a2)
|
||||
{ return QByteArray(a1) += a2; }
|
||||
inline const QByteArray operator+(const char *a1, const QByteArray &a2)
|
||||
inline QByteArray operator+(const char *a1, const QByteArray &a2)
|
||||
{ return QByteArray(a1) += a2; }
|
||||
inline const QByteArray operator+(char a1, const QByteArray &a2)
|
||||
inline QByteArray operator+(char a1, const QByteArray &a2)
|
||||
{ return QByteArray(&a1, 1) += a2; }
|
||||
#endif // QT_USE_QSTRINGBUILDER
|
||||
|
||||
|
@ -6276,7 +6276,7 @@ QString& QString::fill(QChar ch, qsizetype size)
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const QString operator+(const QString &s1, const QString &s2)
|
||||
\fn QString operator+(const QString &s1, const QString &s2)
|
||||
\relates QString
|
||||
|
||||
Returns a string which is the result of concatenating \a s1 and \a
|
||||
@ -6284,7 +6284,7 @@ QString& QString::fill(QChar ch, qsizetype size)
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const QString operator+(const QString &s1, const char *s2)
|
||||
\fn QString operator+(const QString &s1, const char *s2)
|
||||
\relates QString
|
||||
|
||||
Returns a string which is the result of concatenating \a s1 and \a
|
||||
@ -6295,7 +6295,7 @@ QString& QString::fill(QChar ch, qsizetype size)
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const QString operator+(const char *s1, const QString &s2)
|
||||
\fn QString operator+(const char *s1, const QString &s2)
|
||||
\relates QString
|
||||
|
||||
Returns a string which is the result of concatenating \a s1 and \a
|
||||
|
@ -1464,20 +1464,20 @@ inline bool QByteArray::operator>=(const QString &s) const
|
||||
#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
|
||||
|
||||
#if !defined(QT_USE_FAST_OPERATOR_PLUS) && !defined(QT_USE_QSTRINGBUILDER)
|
||||
inline const QString operator+(const QString &s1, const QString &s2)
|
||||
inline QString operator+(const QString &s1, const QString &s2)
|
||||
{ QString t(s1); t += s2; return t; }
|
||||
inline const QString operator+(const QString &s1, QChar s2)
|
||||
inline QString operator+(const QString &s1, QChar s2)
|
||||
{ QString t(s1); t += s2; return t; }
|
||||
inline const QString operator+(QChar s1, const QString &s2)
|
||||
inline QString operator+(QChar s1, const QString &s2)
|
||||
{ QString t(s1); t += s2; return t; }
|
||||
# if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
|
||||
QT_ASCII_CAST_WARN inline const QString operator+(const QString &s1, const char *s2)
|
||||
QT_ASCII_CAST_WARN inline QString operator+(const QString &s1, const char *s2)
|
||||
{ QString t(s1); t += QString::fromUtf8(s2); return t; }
|
||||
QT_ASCII_CAST_WARN inline const QString operator+(const char *s1, const QString &s2)
|
||||
QT_ASCII_CAST_WARN inline QString operator+(const char *s1, const QString &s2)
|
||||
{ QString t = QString::fromUtf8(s1); t += s2; return t; }
|
||||
QT_ASCII_CAST_WARN inline const QString operator+(const QByteArray &ba, const QString &s)
|
||||
QT_ASCII_CAST_WARN inline QString operator+(const QByteArray &ba, const QString &s)
|
||||
{ QString t = QString::fromUtf8(ba); t += s; return t; }
|
||||
QT_ASCII_CAST_WARN inline const QString operator+(const QString &s, const QByteArray &ba)
|
||||
QT_ASCII_CAST_WARN inline QString operator+(const QString &s, const QByteArray &ba)
|
||||
{ QString t(s); t += QString::fromUtf8(ba); return t; }
|
||||
# endif // QT_NO_CAST_FROM_ASCII
|
||||
#endif // QT_USE_QSTRINGBUILDER
|
||||
|
Loading…
x
Reference in New Issue
Block a user