From 5d2dadc6e1cfe23565c9801e8dceeae9883bb9be Mon Sep 17 00:00:00 2001 From: Andreas Lauser Date: Wed, 29 Jul 2015 13:56:53 +0200 Subject: [PATCH] replace custom conditional type selector by std::conditional I did not know about std::conditional until today... --- .../fluidstates/SimpleModularFluidState.hpp | 72 +++++++------------ 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/opm/material/fluidstates/SimpleModularFluidState.hpp b/opm/material/fluidstates/SimpleModularFluidState.hpp index 28f97766d..e86d76b8d 100644 --- a/opm/material/fluidstates/SimpleModularFluidState.hpp +++ b/opm/material/fluidstates/SimpleModularFluidState.hpp @@ -35,29 +35,9 @@ #include "FluidStateEnthalpyModules.hpp" #include "ModularFluidState.hpp" +#include + namespace Opm { -/*! - * \brief This is a helper class to select a type depending on a condition. - * - * This is required for the template-meta-programming-foo of SimpleModularFluidState. - */ -template -class IfThenElseType; - -template -class IfThenElseType -{ -public: - typedef TrueType type; -}; - -template -class IfThenElseType -{ -public: - typedef FalseType type; -}; - // this macro is a small hack to prevent death-through verbosity #define OPM_SMFS SimpleModularFluidState class SimpleModularFluidState : public ModularFluidState, - FluidStateNullPressureModule >::type, - typename IfThenElseType, - FluidStateNullTemperatureModule >::type, - typename IfThenElseType, - FluidStateNullCompositionModule >::type, - typename IfThenElseType, - FluidStateNullFugacityModule >::type, - typename IfThenElseType, - FluidStateNullSaturationModule >::type, - typename IfThenElseType, - FluidStateNullDensityModule >::type, - typename IfThenElseType, - FluidStateNullViscosityModule >::type, - typename IfThenElseType, - FluidStateNullEnthalpyModule >::type + typename std::conditional, + FluidStateNullPressureModule >::type, + typename std::conditional, + FluidStateNullTemperatureModule >::type, + typename std::conditional, + FluidStateNullCompositionModule >::type, + typename std::conditional, + FluidStateNullFugacityModule >::type, + typename std::conditional, + FluidStateNullSaturationModule >::type, + typename std::conditional, + FluidStateNullDensityModule >::type, + typename std::conditional, + FluidStateNullViscosityModule >::type, + typename std::conditional, + FluidStateNullEnthalpyModule >::type > {};