From: Wolfgang Bangerth Date: Wed, 22 Mar 2023 23:07:51 +0000 (-0600) Subject: Fix a couple of C++20 concepts in parallel.h. X-Git-Tag: v9.5.0-rc1~430^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96e557fe09c3254708fbc5915e8459a18e164d6e;p=dealii.git Fix a couple of C++20 concepts in parallel.h. --- diff --git a/include/deal.II/base/parallel.h b/include/deal.II/base/parallel.h index 4da420b7eb..6ac43510e3 100644 --- a/include/deal.II/base/parallel.h +++ b/include/deal.II/base/parallel.h @@ -134,9 +134,11 @@ namespace parallel */ template DEAL_II_CXX20_REQUIRES( - (std::invocable && - std::assignable_from()), - std::invoke_result_t>)) + (std::invocable())> && + std::assignable_from< + decltype(*std::declval()), + std::invoke_result_t())>>)) void transform(const InputIterator &begin_in, const InputIterator &end_in, OutputIterator out, @@ -196,10 +198,14 @@ namespace parallel typename OutputIterator, typename Function> DEAL_II_CXX20_REQUIRES( - (std::invocable && + (std::invocable()), + decltype(*std::declval())> && std::assignable_from< decltype(*std::declval()), - std::invoke_result_t>)) + std::invoke_result_t()), + decltype(*std::declval())>>)) void transform(const InputIterator1 &begin_in1, const InputIterator1 &end_in1, InputIterator2 in2, @@ -262,12 +268,16 @@ namespace parallel typename OutputIterator, typename Function> DEAL_II_CXX20_REQUIRES( - (std::invocable && - std::assignable_from()), - std::invoke_result_t>)) + (std::invocable()), + decltype(*std::declval()), + decltype(*std::declval())> && + std::assignable_from< + decltype(*std::declval()), + std::invoke_result_t()), + decltype(*std::declval()), + decltype(*std::declval())>>)) void transform(const InputIterator1 &begin_in1, const InputIterator1 &end_in1, InputIterator2 in2,