diff --git a/dumux/multidomain/newtonsolver.hh b/dumux/multidomain/newtonsolver.hh index 24672b2045e6964a381f9f16f3a0f1a31d23f18d..7eda01acb04d12c8afebcaedb7cab61535599647 100644 --- a/dumux/multidomain/newtonsolver.hh +++ b/dumux/multidomain/newtonsolver.hh @@ -34,9 +34,6 @@ namespace Detail { template<class Assembler, class Index> using DetectPVSwitchMultiDomain = typename Assembler::template GridVariables<Index::value>::VolumeVariables::PrimaryVariableSwitch; -template<class Assembler, std::size_t i> -using GetPVSwitchMultiDomain = Dune::Std::detected_or<int, DetectPVSwitchMultiDomain, Assembler, Dune::index_constant<i>>; - } // end namespace Detail /*! @@ -56,10 +53,12 @@ class MultiDomainNewtonSolver: public NewtonSolver<Assembler, LinearSolver, Reas static constexpr bool assemblerExportsVariables = Detail::exportsVariables<Assembler>; template<std::size_t i> - using PrimaryVariableSwitch = typename Detail::GetPVSwitchMultiDomain<Assembler, i>::type; + using PrimaryVariableSwitch = + Dune::Std::detected_or_t<int, Detail::DetectPVSwitchMultiDomain, Assembler, Dune::index_constant<i>>; template<std::size_t i> - using HasPriVarsSwitch = typename Detail::GetPVSwitchMultiDomain<Assembler, i>::value_t; // std::true_type or std::false_type + using HasPriVarsSwitch = + Dune::Std::is_detected<Detail::DetectPVSwitchMultiDomain, Assembler, Dune::index_constant<i>>; // std::true_type or std::false_type template<std::size_t i> using PrivarSwitchPtr = std::unique_ptr<PrimaryVariableSwitch<i>>; diff --git a/dumux/nonlinear/primaryvariableswitchadapter.hh b/dumux/nonlinear/primaryvariableswitchadapter.hh index 9d3a95459c73ca631a4c83fd88c474e78b87dd72..2d3c2ea604d6322b2af0874d21f0d213cfa736dd 100644 --- a/dumux/nonlinear/primaryvariableswitchadapter.hh +++ b/dumux/nonlinear/primaryvariableswitchadapter.hh @@ -36,10 +36,7 @@ template<class Variables> using DetectPVSwitch = typename Variables::VolumeVariables::PrimaryVariableSwitch; template<class Variables> -using GetPVSwitch = Dune::Std::detected_or<int, DetectPVSwitch, Variables>; - -template<class Variables> -using PrimaryVariableSwitch = typename GetPVSwitch<Variables>::type; +using PrimaryVariableSwitch = Dune::Std::detected_or_t<int, DetectPVSwitch, Variables>; } // end namespace Detail @@ -48,7 +45,7 @@ using PrimaryVariableSwitch = typename GetPVSwitch<Variables>::type; * \brief Helper boolean to check if the given variables involve primary variable switching. */ template<class Variables> -inline constexpr bool hasPriVarsSwitch = typename Detail::GetPVSwitch<Variables>::value_t(); +inline constexpr bool hasPriVarsSwitch = Dune::Std::is_detected<Detail::DetectPVSwitch, Variables>(); /*! * \ingroup Nonlinear