diff options
Diffstat (limited to 'src/common.h')
-rw-r--r-- | src/common.h | 12 |
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; } |