diff options
Diffstat (limited to 'src/common/utils2.hpp')
-rw-r--r-- | src/common/utils2.hpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/utils2.hpp b/src/common/utils2.hpp index 978ae54..adcb465 100644 --- a/src/common/utils2.hpp +++ b/src/common/utils2.hpp @@ -284,4 +284,12 @@ T maybe_cast(U u) return u; } +template<class T, class U> +typename std::remove_pointer<T>::type *sign_cast(U *u) +{ + typedef typename std::remove_pointer<T>::type T_; + static_assert(sizeof(T_) == sizeof(U), "sign cast must be same size"); + return reinterpret_cast<T_ *>(u); +} + #endif // UTILS2_HPP |