File indexing completed on 2024-05-05 05:41:38
0001 // clang+++ test.cpp -I /usr/include/qt/ -fPIC -lQt5Core -c 0002 0003 #include <QtCore/QHash> 0004 #include <QtCore/QMap> 0005 #include <QtCore/QSet> 0006 #include <QtCore/QString> 0007 0008 QSet<QString *> values() 0009 { 0010 QSet<QString *> s; 0011 return s; 0012 } 0013 0014 QSet<QString *> keys() 0015 { 0016 QSet<QString *> s; 0017 return s; 0018 } 0019 0020 struct Foo { 0021 QSet<QString *> values() 0022 { 0023 QSet<QString *> s; 0024 return s; 0025 } 0026 0027 QSet<QString *> doSomethingWithValues(const QList<QString*> &) 0028 { 0029 QSet<QString *> s; 0030 return s; 0031 } 0032 }; 0033 0034 int main() 0035 { 0036 QSet<QString *> s; 0037 qDeleteAll(s); 0038 qDeleteAll(s.begin(), s.end()); 0039 qDeleteAll(s.values()); // warning 0040 0041 QHash<int, QString *> h; 0042 qDeleteAll(h); 0043 qDeleteAll(h.begin(), h.end()); 0044 qDeleteAll(h.values()); // warning 0045 0046 QMap<int*, QString *> m; 0047 qDeleteAll(m); 0048 qDeleteAll(m.begin(), m.end()); 0049 qDeleteAll(m.values()); // warning 0050 0051 QMultiHash<int, QString *> mh; 0052 qDeleteAll(mh); 0053 qDeleteAll(mh.begin(), mh.end()); 0054 qDeleteAll(mh.values()); // warning 0055 0056 QMultiMap<int, QString *> mm; 0057 qDeleteAll(mm); 0058 qDeleteAll(mm.begin(), mm.end()); 0059 qDeleteAll(mm.values()); // warning 0060 0061 qDeleteAll(values()); // ok 0062 0063 Foo foo; 0064 qDeleteAll(foo.values()); // ok 0065 qDeleteAll(foo.doSomethingWithValues(h.values())); // ok 0066 0067 qDeleteAll(m.keys()); // warning 0068 qDeleteAll(keys()); // ok 0069 0070 #if QT_VERSION_MAJOR == 5 0071 qDeleteAll(h.values(1)); // OK, we have specified a key 0072 #endif 0073 qDeleteAll(mh.values(1)); // We only want to delete a subset of the container - ok 0074 0075 }