memgraph/utils/memory/maker.hpp
2015-12-07 21:51:55 +01:00

25 lines
421 B
C++

#pragma once
#include <cstdlib>
#include "allocator.hpp"
template <class T,
typename... Args,
class allocator=fast_allocator<T>>
T* makeme(Args... args)
{
allocator alloc;
T* mem = alloc.allocate(1);
return new (mem) T(args...);
}
template <class T,
class allocator=fast_allocator<T>>
void takeme(T* mem)
{
allocator alloc;
mem->~T();
alloc.deallocate(mem, 1);
}