summaryrefslogtreecommitdiff
path: root/src/common/utils2.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/utils2.hpp')
-rw-r--r--src/common/utils2.hpp8
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