QStringBuilder: Add support for QByteArrayView
[ChangeLog][QtCore][QStringBuilder] Added support for QByteArrayView. Change-Id: If2c23549d533dd31c320f3ee455fcd01ea5b460a Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
parent
9909ec0bc6
commit
cdc3de6c84
@ -187,6 +187,27 @@ template <> struct QConcatenable<char> : private QAbstractConcatenable
|
||||
{ *out++ = c; }
|
||||
};
|
||||
|
||||
template <> struct QConcatenable<QByteArrayView> : private QAbstractConcatenable
|
||||
{
|
||||
typedef QByteArrayView type;
|
||||
typedef QByteArray ConvertTo;
|
||||
enum { ExactSize = true };
|
||||
static qsizetype size(QByteArrayView bav) { return bav.size(); }
|
||||
#ifndef QT_NO_CAST_FROM_ASCII
|
||||
QT_ASCII_CAST_WARN static inline void appendTo(QByteArrayView bav, QChar *&out)
|
||||
{
|
||||
QAbstractConcatenable::convertFromUtf8(bav, out);
|
||||
}
|
||||
#endif
|
||||
static inline void appendTo(QByteArrayView bav, char *&out)
|
||||
{
|
||||
qsizetype n = bav.size();
|
||||
if (n)
|
||||
memcpy(out, bav.data(), n);
|
||||
out += n;
|
||||
}
|
||||
};
|
||||
|
||||
template <> struct QConcatenable<char16_t> : private QAbstractConcatenable
|
||||
{
|
||||
typedef char16_t type;
|
||||
|
@ -305,6 +305,10 @@ void runScenario()
|
||||
QCOMPARE(r, ba);
|
||||
r = zero P ba;
|
||||
QCOMPARE(r, ba);
|
||||
|
||||
QByteArrayView qbav = LITERAL;
|
||||
superba = qbav P qbav P LITERAL;
|
||||
QCOMPARE(superba, QByteArray(LITERAL LITERAL LITERAL));
|
||||
}
|
||||
|
||||
//operator QString +=
|
||||
|
Loading…
x
Reference in New Issue
Block a user