diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh index 1b3358776296c731549ed90566ece2bd21b5ec68..00b7e8eede4397e4efddd25fb9d555b79214bae7 100644 --- a/dune/solvers/iterationsteps/blockgssteps.hh +++ b/dune/solvers/iterationsteps/blockgssteps.hh @@ -140,9 +140,9 @@ template <class LinearSolver> auto truncate(LinearSolver&& linearSolver) { return [&, localSolver = std::move(linearSolver) ]( const auto& m, const auto& b, const auto& ignore) { + using Return = typename std::result_of<LinearSolver(decltype(m), decltype(b))>::type; if (ignore.all()) - return typename std::result_of< - LinearSolver(decltype(m), decltype(b))>::type{0}; + return Return{0}; if (ignore.none()) return linearSolver(m, b);