-/// Value or a ScaleFactor.
-template<EndgameType E>
-using eg_fun = std::conditional<(E < SCALING_FUNCTIONS), Value, ScaleFactor>;
+/// Value or a ScaleFactor. Type eg_fun<int>::type returns either ScaleFactor
+/// or Value depending on whether the template parameter is 0 or 1.
+
+template<int> struct eg_fun { typedef Value type; };
+template<> struct eg_fun<1> { typedef ScaleFactor type; };