From dc14f164be0fe27ea313c0bca20627b4d4adcec9 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 13 Jul 2020 18:23:15 +0300 Subject: [PATCH] Fix error in Reverse function. --- src/libs/vmisc/compatibility.h | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/libs/vmisc/compatibility.h b/src/libs/vmisc/compatibility.h index 8440957c7..d8184e3f7 100644 --- a/src/libs/vmisc/compatibility.h +++ b/src/libs/vmisc/compatibility.h @@ -31,6 +31,7 @@ #include #include #include +#include class QPointF; @@ -183,14 +184,13 @@ inline void Move(T &vector, int from, int to) //--------------------------------------------------------------------------------------------------------------------- template -T Reverse(const T &container) +QVector Reverse(const QVector &container) { if (container.isEmpty()) { return container; } - T reversed; - reversed.reserve(container.size()); + QVector reversed(container.size()); qint32 j = 0; for (qint32 i = container.size() - 1; i >= 0; --i) { @@ -200,6 +200,20 @@ T Reverse(const T &container) return reversed; } +template class C> +//--------------------------------------------------------------------------------------------------------------------- +C Reverse(const C &container) +{ + return ConvertToList(Reverse(ConvertToVector(container))); +} + +//--------------------------------------------------------------------------------------------------------------------- +template ::value, T>::type* = nullptr> +T Reverse(const T &container) +{ + return Reverse(container); +} + //--------------------------------------------------------------------------------------------------------------------- template inline void AppendTo(Cont &container, const Input &input)