Remove deprecated functionality from QSet

Remove support for reverse iteration over a QSet.

Change-Id: I1e9c986a118aea4ebeb7fcdceb41e9ce6593cdb6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
Lars Knoll 2020-01-20 15:46:49 +01:00
parent e41d243789
commit c0d2deac8b
2 changed files with 1 additions and 202 deletions

View File

@ -105,11 +105,7 @@ public:
friend class QSet<T>;
public:
#if QT_DEPRECATED_SINCE(5, 15)
typedef std::bidirectional_iterator_tag iterator_category;
#else
typedef std::forward_iterator_tag iterator_category;
#endif
typedef qptrdiff difference_type;
typedef T value_type;
typedef const T *pointer;
@ -129,15 +125,6 @@ public:
{ return i != o.i; }
inline iterator &operator++() { ++i; return *this; }
inline iterator operator++(int) { iterator r = *this; ++i; return r; }
#if QT_DEPRECATED_SINCE(5, 15)
inline QT_DEPRECATED iterator &operator--() { --i; return *this; }
inline QT_DEPRECATED iterator operator--(int) { iterator r = *this; --i; return r; }
inline QT_DEPRECATED iterator operator+(int j) const { return i + j; }
inline QT_DEPRECATED iterator operator-(int j) const { return i - j; }
friend inline QT_DEPRECATED iterator operator+(int j, iterator k) { return k + j; }
inline QT_DEPRECATED iterator &operator+=(int j) { i += j; return *this; }
inline QT_DEPRECATED iterator &operator-=(int j) { i -= j; return *this; }
#endif
};
class const_iterator
@ -148,11 +135,7 @@ public:
friend class QSet<T>;
public:
#if QT_DEPRECATED_SINCE(5, 15)
typedef std::bidirectional_iterator_tag iterator_category;
#else
typedef std::forward_iterator_tag iterator_category;
#endif
typedef qptrdiff difference_type;
typedef T value_type;
typedef const T *pointer;
@ -170,15 +153,6 @@ public:
inline bool operator!=(const const_iterator &o) const { return i != o.i; }
inline const_iterator &operator++() { ++i; return *this; }
inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; }
#if QT_DEPRECATED_SINCE(5, 15)
inline QT_DEPRECATED const_iterator &operator--() { --i; return *this; }
inline QT_DEPRECATED const_iterator operator--(int) { const_iterator r = *this; --i; return r; }
inline QT_DEPRECATED const_iterator operator+(int j) const { return i + j; }
inline QT_DEPRECATED const_iterator operator-(int j) const { return i - j; }
friend inline QT_DEPRECATED const_iterator operator+(int j, const_iterator k) { return k + j; }
inline QT_DEPRECATED const_iterator &operator+=(int j) { i += j; return *this; }
inline QT_DEPRECATED const_iterator &operator-=(int j) { i -= j; return *this; }
#endif
};
// STL style
@ -191,23 +165,10 @@ public:
inline const_iterator cend() const noexcept { return q_hash.end(); }
inline const_iterator constEnd() const noexcept { return q_hash.constEnd(); }
#if QT_DEPRECATED_SINCE(5, 15)
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
reverse_iterator QT_DEPRECATED rbegin() { return reverse_iterator(end()); }
reverse_iterator QT_DEPRECATED rend() { return reverse_iterator(begin()); }
const_reverse_iterator QT_DEPRECATED rbegin() const noexcept { return const_reverse_iterator(end()); }
const_reverse_iterator QT_DEPRECATED rend() const noexcept { return const_reverse_iterator(begin()); }
const_reverse_iterator QT_DEPRECATED crbegin() const noexcept { return const_reverse_iterator(end()); }
const_reverse_iterator QT_DEPRECATED crend() const noexcept { return const_reverse_iterator(begin()); }
#endif
iterator erase(iterator i)
{ return erase(m2c(i)); }
iterator erase(const_iterator i)
{
Q_ASSERT_X(isValidIterator(i), "QSet::erase", "The specified const_iterator argument 'i' is invalid");
return q_hash.erase(reinterpret_cast<typename Hash::const_iterator &>(i));
}
@ -263,15 +224,6 @@ private:
static const_iterator m2c(iterator it) noexcept
{ return const_iterator(typename Hash::const_iterator(it.i.i)); }
bool isValidIterator(const iterator &i) const
{
return q_hash.isValidIterator(reinterpret_cast<const typename Hash::iterator&>(i));
}
bool isValidIterator(const const_iterator &i) const noexcept
{
return q_hash.isValidIterator(reinterpret_cast<const typename Hash::const_iterator&>(i));
}
};
#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201606
@ -415,14 +367,6 @@ public:
inline const T &value() const { Q_ASSERT(item_exists()); return *n; }
inline bool findNext(const T &t)
{ while (c->constEnd() != (n = i)) if (*i++ == t) return true; return false; }
#if QT_DEPRECATED_SINCE(5, 15)
inline QT_DEPRECATED bool hasPrevious() const { return c->constBegin() != i; }
inline QT_DEPRECATED const T &previous() { n = --i; return *n; }
inline QT_DEPRECATED const T &peekPrevious() const { iterator p = i; return *--p; }
inline QT_DEPRECATED bool findPrevious(const T &t)
{ while (c->constBegin() != i) if (*(n = --i) == t) return true;
n = c->end(); return false; }
#endif
};
#endif // QT_NO_JAVA_STYLE_ITERATORS

View File

@ -59,7 +59,6 @@ private slots:
void begin();
void end();
void insert();
void reverseIterators();
void setOperations();
void stlIterator();
void stlMutableIterator();
@ -577,21 +576,6 @@ void tst_QSet::insert()
}
}
void tst_QSet::reverseIterators()
{
QSet<int> s;
s << 1 << 17 << 61 << 127 << 911;
std::vector<int> v(s.begin(), s.end());
std::reverse(v.begin(), v.end());
const QSet<int> &cs = s;
QVERIFY(std::equal(v.begin(), v.end(), s.rbegin()));
QVERIFY(std::equal(v.begin(), v.end(), s.crbegin()));
QVERIFY(std::equal(v.begin(), v.end(), cs.rbegin()));
QVERIFY(std::equal(s.rbegin(), s.rend(), v.begin()));
QVERIFY(std::equal(s.crbegin(), s.crend(), v.begin()));
QVERIFY(std::equal(cs.rbegin(), cs.rend(), v.begin()));
}
void tst_QSet::setOperations()
{
QSet<QString> set1, set2;
@ -705,16 +689,6 @@ void tst_QSet::stlIterator()
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QSet<QString>::const_iterator i = set1.end();
while (i != set1.begin()) {
--i;
sum += toNumber(*i);
}
QVERIFY(sum == 24999 * 25000 / 2);
}
}
void tst_QSet::stlMutableIterator()
@ -733,22 +707,11 @@ void tst_QSet::stlMutableIterator()
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QSet<QString>::iterator i = set1.end();
while (i != set1.begin()) {
--i;
sum += toNumber(*i);
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
QSet<QString> set2 = set1;
QSet<QString> set3 = set2;
QSet<QString>::iterator i = set2.begin();
QSet<QString>::iterator j = set3.begin();
while (i != set2.end()) {
i = set2.erase(i);
@ -756,24 +719,7 @@ void tst_QSet::stlMutableIterator()
QVERIFY(set2.isEmpty());
QVERIFY(!set3.isEmpty());
j = set3.end();
while (j != set3.begin()) {
j--;
if (j + 1 != set3.end())
set3.erase(j + 1);
}
if (set3.begin() != set3.end())
set3.erase(set3.begin());
QVERIFY(set2.isEmpty());
QVERIFY(set3.isEmpty());
// #if QT_VERSION >= 0x050000
// i = set2.insert("foo");
// #else
QSet<QString>::const_iterator k = set2.insert("foo");
i = reinterpret_cast<QSet<QString>::iterator &>(k);
// #endif
i = set2.insert("foo");
QCOMPARE(*i, QLatin1String("foo"));
}
}
@ -802,47 +748,6 @@ void tst_QSet::javaIterator()
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QSetIterator<QString> i(set1);
while (i.hasNext()) {
i.next();
sum += toNumber(i.peekPrevious());
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QSetIterator<QString> i(set1);
i.toBack();
while (i.hasPrevious())
sum += toNumber(i.previous());
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QSetIterator<QString> i(set1);
i.toBack();
while (i.hasPrevious()) {
sum += toNumber(i.peekPrevious());
i.previous();
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QSetIterator<QString> i(set1);
i.toBack();
while (i.hasPrevious()) {
i.previous();
sum += toNumber(i.peekNext());
}
QVERIFY(sum == 24999 * 25000 / 2);
}
int sum1 = 0;
int sum2 = 0;
QSetIterator<QString> i(set1);
@ -896,53 +801,11 @@ void tst_QSet::javaMutableIterator()
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QMutableSetIterator<QString> i(set1);
while (i.hasNext()) {
i.next();
sum += toNumber(i.peekPrevious());
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QMutableSetIterator<QString> i(set1);
i.toBack();
while (i.hasPrevious())
sum += toNumber(i.previous());
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QMutableSetIterator<QString> i(set1);
i.toBack();
while (i.hasPrevious()) {
sum += toNumber(i.peekPrevious());
i.previous();
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
int sum = 0;
QMutableSetIterator<QString> i(set1);
i.toBack();
while (i.hasPrevious()) {
i.previous();
sum += toNumber(i.peekNext());
}
QVERIFY(sum == 24999 * 25000 / 2);
}
{
QSet<QString> set2 = set1;
QSet<QString> set3 = set2;
QMutableSetIterator<QString> i(set2);
QMutableSetIterator<QString> j(set3);
while (i.hasNext()) {
i.next();
@ -950,14 +813,6 @@ void tst_QSet::javaMutableIterator()
}
QVERIFY(set2.isEmpty());
QVERIFY(!set3.isEmpty());
j.toBack();
while (j.hasPrevious()) {
j.previous();
j.remove();
}
QVERIFY(set2.isEmpty());
QVERIFY(set3.isEmpty());
}
}