From a1a02150d710df2838060445b9ad447689538985 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Sun, 23 Dec 2012 14:23:32 -0800 Subject: Enumify some more things ... maybe even everything --- src/common/utils2.hpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/common/utils2.hpp') diff --git a/src/common/utils2.hpp b/src/common/utils2.hpp index 326b12f..aa97959 100644 --- a/src/common/utils2.hpp +++ b/src/common/utils2.hpp @@ -93,6 +93,18 @@ struct underlying_type >::type type; }; +template::value> +struct remove_enum +{ + typedef E type; +}; +template +struct remove_enum +{ + typedef typename underlying_type::type type; +}; + + #define ENUM_BITWISE_OPERATORS(E) \ inline \ E operator & (E l, E r) \ @@ -175,3 +187,15 @@ IteratorPair> erange(E b, E e) namespace std { namespace placeholders {} } namespace ph = std::placeholders; + +template +typename std::common_type::type min(A a, B b) +{ + return a < b ? a : b; +} + +template +typename std::common_type::type max(A a, B b) +{ + return b < a ? a : b; +} -- cgit v1.2.3-70-g09d2