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:
parent
e41d243789
commit
c0d2deac8b
@ -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
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user