diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh index 7ed5a385c6cab2cd83b3c18d0472320ab4cbe19c..f15e7f70c5214ec2923e86fba60f38313372bc11 100644 --- a/dune/solvers/iterationsteps/blockgssteps.hh +++ b/dune/solvers/iterationsteps/blockgssteps.hh @@ -3,6 +3,7 @@ #include <cassert> #include <functional> +#include <type_traits> #include <dune/common/parametertree.hh> @@ -181,7 +182,7 @@ template <class LinearSolver> auto truncateSymmetrically(LinearSolver&& linearSolver) { return [linearSolver = std::move(linearSolver) ]( const auto& m, const auto& b, const auto& ignore) { - using Return = typename std::result_of<LinearSolver(decltype(m), decltype(b))>::type; + using Return = std::invoke_result_t<LinearSolver, decltype(m), decltype(b)>; if (ignore.all()) return Return(0);