Skip to content

Vc issue with c++17

See https://gitlab.dune-project.org/core/dune-common/-/jobs/21149

[ 28%] Building CXX object dune/common/test/CMakeFiles/concept.dir/concept.cc.o
In file included from /usr/include/Vc/vector.h:252:0,
                 from /usr/include/Vc/Vc:30,
                 from /builds/core/dune-common/dune/common/test/fmatrixtest.cc:19:
/usr/include/Vc/common/algorithms.h: In function 'Vc_1::enable_if<(! std::is_arithmetic<typename InputIt::value_type>::value), UnaryFunction> Vc_1::simd_for_each_n(InputIt, std::size_t, UnaryFunction)':
/usr/include/Vc/common/algorithms.h:204:17: error: 'for_each_n' is not a member of 'std'
     return std::for_each_n(first, count, std::move(f));
                 ^~~~~~~~~~
/usr/include/Vc/common/algorithms.h:204:17: note: suggested alternative: 'for_each'
     return std::for_each_n(first, count, std::move(f));
                 ^~~~~~~~~~
                 for_each

Apparently, Vc/common/algorithms.h should include <algorithm> so std::for_each_n() is declared. This is only a problem with c++17 because that code portion is inside an #ifdef Vc_CXX17.

Although this is probably an issue in Vc (1.3.2), we're going to have to work around it somehow, since 1.3.2 is packaged...

See also: infrastructure/issues0#44 (closed)