Пример #1
0
Owned<void> AllocateDynamicNew(const TypeInfo& type, ConstructorT&& constructor)
{
	// Allocate memory and construct object
	auto buffer = static_cast<byte*>(std::malloc(type.get_size()));
	constructor(buffer);

	// Create deleter for object
	auto deleter = [](void* value, const TypeInfo* t)
	{
		t->get_destructor()(value);
		std::free(value);
	};

	return Owned<void>::Create(buffer, &type, deleter);
}