diff options
Diffstat (limited to 'pkmacros.h')
| -rw-r--r-- | pkmacros.h | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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)) |
