From b6c309b3b34bd4ac4e639c8633ebc8330fb2e3af Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Wed, 6 Jan 2021 23:11:17 +0100
Subject: [PATCH] [PL/Out] Replace result_of with invoke_result.

std::result_of is deprecated as of c++17 and removed in c++20.
---
 ProcessLib/Output/SecondaryVariable.h | 27 ++++++++++++---------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/ProcessLib/Output/SecondaryVariable.h b/ProcessLib/Output/SecondaryVariable.h
index 4b776a89d48..4599f02025e 100644
--- a/ProcessLib/Output/SecondaryVariable.h
+++ b/ProcessLib/Output/SecondaryVariable.h
@@ -52,22 +52,20 @@ struct SecondaryVariableFunctions final
         static_assert(
             std::is_same<
                 GlobalVector const&,
-                typename std::result_of<F1(
-                    double const, std::vector<GlobalVector*> const&,
-                    std::vector<NumLib::LocalToGlobalIndexMap const*> const&
-                        dof_table,
-                    std::unique_ptr<GlobalVector>&)>::type>::value,
+                typename std::invoke_result<
+                    F1, double const, std::vector<GlobalVector*> const&,
+                    std::vector<NumLib::LocalToGlobalIndexMap const*> const&,
+                    std::unique_ptr<GlobalVector>&>::type>::value,
             "The function eval_field_ does not return a const reference"
             " to a GlobalVector");
 
         static_assert(
             std::is_same<
                 GlobalVector const&,
-                typename std::result_of<F2(
-                    double const, std::vector<GlobalVector*> const& x,
-                    std::vector<NumLib::LocalToGlobalIndexMap const*> const&
-                        dof_table,
-                    std::unique_ptr<GlobalVector>&)>::type>::value,
+                typename std::invoke_result<
+                    F2, double const, std::vector<GlobalVector*> const&,
+                    std::vector<NumLib::LocalToGlobalIndexMap const*> const&,
+                    std::unique_ptr<GlobalVector>&>::type>::value,
             "The function eval_residuals_ does not return a const reference"
             " to a GlobalVector");
     }
@@ -82,11 +80,10 @@ struct SecondaryVariableFunctions final
         static_assert(
             std::is_same<
                 GlobalVector const&,
-                typename std::result_of<F1(
-                    double const, std::vector<GlobalVector*> const& x,
-                    std::vector<NumLib::LocalToGlobalIndexMap const*> const&
-                        dof_table,
-                    std::unique_ptr<GlobalVector>&)>::type>::value,
+                typename std::invoke_result<
+                    F1, double const, std::vector<GlobalVector*> const&,
+                    std::vector<NumLib::LocalToGlobalIndexMap const*> const&,
+                    std::unique_ptr<GlobalVector>&>::type>::value,
             "The function eval_field_ does not return a const reference"
             " to a GlobalVector");
     }
-- 
GitLab