support c'tor as second parameter in foreach macro
Passing a constructor as second argument to foreach didn't work when building with gcc. For MSVC this already worked as a different foreach implementation is used. Change-Id: Id98444c699b4cebc14ea62076c5f7cba33ffb824 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>bb10
parent
5428db88de
commit
cbc6387a28
|
|
@ -858,7 +858,7 @@ public:
|
|||
};
|
||||
|
||||
#define Q_FOREACH(variable, container) \
|
||||
for (QForeachContainer<__typeof__(container)> _container_(container); \
|
||||
for (QForeachContainer<__typeof__((container))> _container_((container)); \
|
||||
!_container_.brk && _container_.i != _container_.e; \
|
||||
__extension__ ({ ++_container_.brk; ++_container_.i; })) \
|
||||
for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;}))
|
||||
|
|
|
|||
|
|
@ -101,6 +101,13 @@ void tst_QGlobal::for_each()
|
|||
QCOMPARE(i, counter++);
|
||||
}
|
||||
QCOMPARE(counter, list.count());
|
||||
|
||||
// check whether we can pass a constructor as container argument
|
||||
counter = 0;
|
||||
foreach (int i, QList<int>(list)) {
|
||||
QCOMPARE(i, counter++);
|
||||
}
|
||||
QCOMPARE(counter, list.count());
|
||||
}
|
||||
|
||||
void tst_QGlobal::qassert()
|
||||
|
|
|
|||
Loading…
Reference in New Issue