diff --git a/dumux/common/doubleexpintegrator.hh b/dumux/common/doubleexpintegrator.hh index 3d6c81838ebc8694e4f45e2b68497cc66563b889..0b4ba4c848a64bb2be2f243dd8ac7b1b09801d87 100644 --- a/dumux/common/doubleexpintegrator.hh +++ b/dumux/common/doubleexpintegrator.hh @@ -54,8 +54,8 @@ #include <cmath> #include <limits> +#include <type_traits> -#include <dune/common/std/type_traits.hh> #include <dumux/common/doubleexpintegrationconstants.hh> namespace Dumux { @@ -78,7 +78,7 @@ public: * \return The value of the integral */ template<class Function, - typename std::enable_if_t<Dune::Std::is_invocable<Function, Scalar>::value>...> + typename std::enable_if_t<std::is_invocable_r_v<Scalar, Function, Scalar>>...> static Scalar integrate(const Function& f, const Scalar a, const Scalar b, @@ -107,7 +107,7 @@ public: * \return The value of the integral. */ template<class Function, - typename std::enable_if_t<Dune::Std::is_invocable<Function, Scalar>::value>...> + typename std::enable_if_t<std::is_invocable_r_v<Scalar, Function, Scalar>>...> static Scalar integrate(const Function& f, const Scalar a, const Scalar b, diff --git a/dumux/common/integrate.hh b/dumux/common/integrate.hh index 09b2e2463d79906b421f04e55b780f370905e896..679753185fb13f8f945bc4b6b00eb6a76147d0db 100644 --- a/dumux/common/integrate.hh +++ b/dumux/common/integrate.hh @@ -29,7 +29,6 @@ #include <dune/geometry/quadraturerules.hh> #include <dune/common/concept.hh> -#include <dune/common/std/type_traits.hh> #if HAVE_DUNE_FUNCTIONS #include <dune/functions/gridfunctions/gridfunction.hh> @@ -262,7 +261,7 @@ auto integrateL2Error(const GridView& gv, * \return The value of the integral */ template<class Scalar, class Function, - typename std::enable_if_t<Dune::Std::is_invocable<Function, Scalar>::value>...> + typename std::enable_if_t<std::is_invocable_r_v<Scalar, Function, Scalar>>...> Scalar integrateScalarFunction(const Function& f, const Scalar lowerBound, const Scalar upperBound, 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) {