diff --git a/dumux/nonlinear/findscalarroot.hh b/dumux/nonlinear/findscalarroot.hh index 7c230d47fe9f5f9f57a10b3dc6349ea31235eca9..9eff421612f716515155b01d43fd514b705b7168 100644 --- a/dumux/nonlinear/findscalarroot.hh +++ b/dumux/nonlinear/findscalarroot.hh @@ -26,8 +26,7 @@ #include <cmath> #include <limits> - -#include <dune/common/std/type_traits.hh> +#include <type_traits> #include <dumux/common/exceptions.hh> #include <dumux/common/parameters.hh> @@ -43,11 +42,10 @@ namespace Dumux { * \param derivative Derivative of the residual * \param tol Relative shift tolerance * \param maxIter Maximum number of iterations - * \todo replace std::result_of by std::invoke_result for C++17 */ template<class Scalar, class ResFunc, class DerivFunc, - typename std::enable_if_t<Dune::Std::is_invocable<ResFunc, Scalar>::value && - Dune::Std::is_invocable<DerivFunc, Scalar>::value>...> + typename std::enable_if_t<std::is_invocable_r_v<Scalar, ResFunc, Scalar> && + std::is_invocable_r_v<Scalar, DerivFunc, Scalar>>...> Scalar findScalarRootNewton(Scalar xOld, const ResFunc& residual, const DerivFunc& derivative, const Scalar tol = 1e-13, const int maxIter = 200) { @@ -87,7 +85,7 @@ Scalar findScalarRootNewton(Scalar xOld, const ResFunc& residual, const DerivFun * \param maxIter Maximum number of iterations */ template<class Scalar, class ResFunc, - typename std::enable_if_t<Dune::Std::is_invocable<ResFunc, Scalar>::value>...> + typename std::enable_if_t<std::is_invocable_r_v<Scalar, ResFunc, Scalar>>...> Scalar findScalarRootNewton(Scalar xOld, const ResFunc& residual, const Scalar tol = 1e-13, const int maxIter = 200) { @@ -109,7 +107,7 @@ Scalar findScalarRootNewton(Scalar xOld, const ResFunc& residual, * \param maxIter Maximum number of iterations */ template<class Scalar, class ResFunc, - typename std::enable_if_t<Dune::Std::is_invocable<ResFunc, Scalar>::value>...> + typename std::enable_if_t<std::is_invocable_r_v<Scalar, ResFunc, Scalar>>...> Scalar findScalarRootBrent(Scalar a, Scalar b, const ResFunc& residual, const Scalar tol = 1e-13, const int maxIter = 200) {