summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/enum_type.hpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/core/enum_type.hpp b/src/core/enum_type.hpp
index 920cb514a..d5bcf6dbe 100644
--- a/src/core/enum_type.hpp
+++ b/src/core/enum_type.hpp
@@ -13,17 +13,17 @@
#define ENUM_TYPE_HPP
/** Some enums need to have allowed incrementing (i.e. StationClassID) */
-#define DECLARE_POSTFIX_INCREMENT(type) \
- inline type operator ++(type& e, int) \
+#define DECLARE_POSTFIX_INCREMENT(enum_type) \
+ inline enum_type operator ++(enum_type& e, int) \
{ \
- type e_org = e; \
- e = (type)((int)e + 1); \
+ enum_type e_org = e; \
+ e = (enum_type)((std::underlying_type<enum_type>::type)e + 1); \
return e_org; \
} \
- inline type operator --(type& e, int) \
+ inline enum_type operator --(enum_type& e, int) \
{ \
- type e_org = e; \
- e = (type)((int)e - 1); \
+ enum_type e_org = e; \
+ e = (enum_type)((std::underlying_type<enum_type>::type)e - 1); \
return e_org; \
}