summaryrefslogtreecommitdiff
path: root/src/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.h')
-rw-r--r--src/common.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common.h b/src/common.h
index 41de90bc..94285973 100644
--- a/src/common.h
+++ b/src/common.h
@@ -110,6 +110,18 @@ void ZeroMemory(T& v) {
memset(&v, 0, sizeof(v));
}
+// Placement construct
+template <typename T, typename... Args>
+void Construct(T& placement, Args... args) {
+ new (&placement) T(args...);
+}
+
+// Placement destruct
+template <typename T>
+void Destruct(T& placement) {
+ placement.~T();
+}
+
inline bool Succeeded(Result result) { return result == Result::Ok; }
inline bool Failed(Result result) { return result == Result::Error; }