From 972f8845a85d6a07140025e4257cb8a1a2699b5d Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 8 Oct 2018 11:55:13 +0200 Subject: Invert include dependencies between QList and QVector This is a very slight source incompatibility, but required as a preparation for Qt 6, where QList should inherit QVector or share the implementation with it. This requires some special work to correctly instantiate and export QVector from Qt Core on MSVC. Change-Id: I1d042c5fafdde7afe59409eda2580871d4832fcd Reviewed-by: Thiago Macieira --- src/corelib/tools/qvector.h | 46 +++------------------------------------------ 1 file changed, 3 insertions(+), 43 deletions(-) (limited to 'src/corelib/tools/qvector.h') diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 30fd7b2865..778bcb3745 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -42,7 +42,6 @@ #include #include -#include #include #include #include @@ -968,37 +967,6 @@ Q_OUTOFLINE_TEMPLATE QVector QVector::mid(int pos, int len) const return midResult; } -template -Q_OUTOFLINE_TEMPLATE QList QVector::toList() const -{ - QList result; - result.reserve(size()); - for (int i = 0; i < size(); ++i) - result.append(at(i)); - return result; -} - -template -Q_OUTOFLINE_TEMPLATE QVector QList::toVector() const -{ - QVector result(size()); - for (int i = 0; i < size(); ++i) - result[i] = at(i); - return result; -} - -template -QVector QVector::fromList(const QList &list) -{ - return list.toVector(); -} - -template -QList QList::fromVector(const QVector &vector) -{ - return vector.toList(); -} - Q_DECLARE_SEQUENTIAL_ITERATOR(Vector) Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR(Vector) @@ -1046,20 +1014,12 @@ inline bool operator>=(const QVector &lhs, const QVector &rhs) ### QVector respectively. */ -#ifdef Q_CC_MSVC +#if defined(Q_CC_MSVC) && !defined(QT_BUILD_CORE_LIB) QT_BEGIN_INCLUDE_NAMESPACE #include QT_END_INCLUDE_NAMESPACE - -#ifndef Q_TEMPLATE_EXTERN -#if defined(QT_BUILD_CORE_LIB) -#define Q_TEMPLATE_EXTERN -#else -#define Q_TEMPLATE_EXTERN extern -#endif -#endif -Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector; -Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector; +extern template class Q_CORE_EXPORT QVector; +extern template class Q_CORE_EXPORT QVector; #endif QVector QStringView::toUcs4() const { return QtPrivate::convertToUcs4(*this); } -- cgit v1.2.3