tst_QPointer: make capture compatible between C++17..23

Clang 19 -std=c++23 complained that ITERATIONS_PER_THREAD was
captured, but not used, so 668d81f73a5c2f4ec14764d1892f2eaf6494c0f1
dropped it, after making the variable constexpr.

Picking that change back to older branches, we found that MSVC
(14.29?) complains that it's _not_ captured anymore:

   tst_qpointer.cpp(491): error C3493: 'ITERATIONS_PER_THREAD' cannot be implicitly captured because no default capture mode has been specified

To appease both compilers, and cover the maximum range of C++ standard
editions, use implicit [&] capture, which should work everywhere.

Not picking to 6.5, because the cherry-pick of
668d81f73a5c2f4ec14764d1892f2eaf6494c0f1 already had to make that
change in order to pass CI.

Pick-to: 6.10 6.9 6.8
Change-Id: Iacbd53d3904608e8c9cd73edf31ba7924fd508e6
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
Marc Mutz 2025-06-14 11:45:55 +02:00
parent 6600a332c6
commit 532400a722

View File

@ -545,7 +545,7 @@ void tst_QPointer::raceCondition()
for (int i = 0; i < NUM_THREADS; ++i) {
QThread *thread =
QThread::create([&startSemaphore, &targetObject] {
QThread::create([&] {
startSemaphore.acquire();
for (int j = 0; j < ITERATIONS_PER_THREAD; ++j) {