SIMD test: fix implicit this capture warnings
C++20 deprecates implicit capture of this
using [=]
, and gcc9 warns about
that. Unfortunately, in C++ before 20 listing this
together with a
capture-default of =
is illegal, and GCC 8 emits a warning about that that
apparently can't be silenced. So the only option if we want to appease both
pre- and post-C++20 is to list each entity to be captures explicitly.
Luckily, that is not too hard in this case.
See https://gitlab.dune-project.org/core/dune-common/-/jobs/139584#L486 (debian:11 gcc-9-20):
[ 40%] Building CXX object dune/common/CMakeFiles/dunecommon.dir/simd/test.cc.o
In file included from /builds/core/dune-common/dune/common/simd/test.cc:6:
/builds/core/dune-common/dune/common/simd/test.hh: In lambda function:
/builds/core/dune-common/dune/common/simd/test.hh:334:36: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated]
334 | Hybrid::forEach(Rebinds{}, [=](auto target) {
| ^
/builds/core/dune-common/dune/common/simd/test.hh:334:36: note: add explicit 'this' or '*this' capture
WIP:
-
Check these warnings are really gone in the CI
Edited by Jö Fahlke