From 3c4721488af0f33515911d07033d3f9981952543 Mon Sep 17 00:00:00 2001 From: Kari Oikarinen Date: Thu, 7 Mar 2019 17:34:16 +0200 Subject: QVector: Add assignment from std::initializer_list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I88a66e4b78ca6f40c328070f275e7163fb0d691c Reviewed-by: Ville Voutilainen Reviewed-by: Giuseppe D'Angelo Reviewed-by: Lars Knoll Reviewed-by: Jędrzej Nowacki --- src/corelib/tools/qvector.h | 12 +++++++++++- src/corelib/tools/qvector.qdoc | 11 +++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 988d5a9e1b..9762ec1b5b 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -79,6 +79,7 @@ public: void swap(QVector &other) Q_DECL_NOTHROW { qSwap(d, other.d); } #ifdef Q_COMPILER_INITIALIZER_LISTS inline QVector(std::initializer_list args); + QVector &operator=(std::initializer_list args); #endif bool operator==(const QVector &v) const; inline bool operator!=(const QVector &v) const { return !(*this == v); } @@ -542,10 +543,19 @@ QVector::QVector(std::initializer_list args) d = Data::sharedNull(); } } + +template +QVector &QVector::operator=(std::initializer_list args) +{ + QVector tmp(args); + tmp.swap(*this); + return *this; +} + # if defined(Q_CC_MSVC) QT_WARNING_POP # endif // Q_CC_MSVC -#endif // Q_COMPILER_INITALIZER_LISTS +#endif // Q_COMPILER_INITIALIZER_LISTS template void QVector::freeData(Data *x) diff --git a/src/corelib/tools/qvector.qdoc b/src/corelib/tools/qvector.qdoc index 75b17a4207..69bbb5f9a2 100644 --- a/src/corelib/tools/qvector.qdoc +++ b/src/corelib/tools/qvector.qdoc @@ -263,6 +263,17 @@ \since 5.2 */ +/*! + \fn template QVector &QVector::operator=(std::initializer_list args) + + Assigns the collection of values in \a args to this QVector instance. + + This operator is only enabled if the compiler supports C++11 initializer + lists. + + \since 5.14 +*/ + /*! \fn template void QVector::swap(QVector &other) \since 4.8 -- cgit v1.2.3