summaryrefslogtreecommitdiff
path: root/pkmacros.h
diff options
context:
space:
mode:
Diffstat (limited to 'pkmacros.h')
-rw-r--r--pkmacros.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/pkmacros.h b/pkmacros.h
index 30144bd..5f50836 100644
--- a/pkmacros.h
+++ b/pkmacros.h
@@ -154,8 +154,8 @@
return a; \
}; \
TypeName operator~(TypeName& a) { \
- a = static_cast<TypeName>(~static_cast<TypeName_T>(a)); \
- return a; \
+ TypeName_T b{static_cast<TypeName_T>(a)}; \
+ return TypeName{static_cast<TypeName_T>(~b)}; \
};
#define TypeSafeInt_H(TypeName, Type, Max) \
TypeSafeInt2_H(TypeName, Type, Max, PK_CONCAT(TypeName, _T), PK_CONCAT(TypeName, _MAX), PK_CONCAT(TypeName, _T_MAX))
@@ -239,7 +239,8 @@
return a; \
}; \
constexpr TypeName operator~(const TypeName& a) { \
- return static_cast<TypeName>(~static_cast<TypeName_T>(a)); \
+ TypeName_T b{static_cast<TypeName_T>(a)}; \
+ return TypeName{static_cast<TypeName_T>(~b)}; \
};
#define TypeSafeInt_constexpr(TypeName, Type, Max) \
TypeSafeInt2_H_constexpr(TypeName, Type, Max, PK_CONCAT(TypeName, _T), PK_CONCAT(TypeName, _MAX), PK_CONCAT(TypeName, _T_MAX))