From 290dda473b9ae1fd85524fa53255c44ac3eeb284 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Tue, 21 Mar 2023 11:48:49 -0600 Subject: [PATCH] Apply convertible_to concepts in parallel.h. --- include/deal.II/base/parallel.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/include/deal.II/base/parallel.h b/include/deal.II/base/parallel.h index b55a1b109a..106493dfe0 100644 --- a/include/deal.II/base/parallel.h +++ b/include/deal.II/base/parallel.h @@ -133,7 +133,10 @@ namespace parallel * module. */ template - DEAL_II_CXX20_REQUIRES((std::invocable)) + DEAL_II_CXX20_REQUIRES( + (std::invocable && + std::convertible_to, + decltype(*std::declval())>)) void transform(const InputIterator &begin_in, const InputIterator &end_in, OutputIterator out, @@ -193,7 +196,10 @@ namespace parallel typename OutputIterator, typename Function> DEAL_II_CXX20_REQUIRES( - (std::invocable)) + (std::invocable && + std::convertible_to< + std::invoke_result_t, + decltype(*std::declval())>)) void transform(const InputIterator1 &begin_in1, const InputIterator1 &end_in1, InputIterator2 in2, @@ -256,7 +262,12 @@ namespace parallel typename OutputIterator, typename Function> DEAL_II_CXX20_REQUIRES( - (std::invocable)) + (std::invocable && + std::convertible_to, + decltype(*std::declval())>)) void transform(const InputIterator1 &begin_in1, const InputIterator1 &end_in1, InputIterator2 in2, @@ -528,7 +539,10 @@ namespace parallel * module. */ template - DEAL_II_CXX20_REQUIRES((std::invocable)) + DEAL_II_CXX20_REQUIRES( + (std::invocable && + std::convertible_to, + ResultType>)) ResultType accumulate_from_subranges(const Function & f, const Iterator & begin, -- 2.39.5