diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-16 09:41:08 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-16 09:41:08 -0400 |
| commit | 7c7b8dd41be35ec1c540356e039ef3692fc07732 (patch) | |
| tree | 4e1e7acdd8d3f08f7e4ea0826527a215681b4527 | |
| parent | 99b71b8a41832e28a300d3ec504cba049f5f3a83 (diff) | |
pkmacros: use a temporary value for bitwise NOT
| -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)) |
