sorry, i'm going to avoid your actual question and ask: why do this at all?
it seems like you're replacing a few lines + an init function with a bunch of metaprogramming that ultimately amounts to roughly the same thing
e.g. you could just be doing (if you want to keep the ExampleObject heap allocated):
var example = try alloc.create(ExampleObject);
example.* = ExampleObject.init(alloc);
defer {
ExampleObject.deinit();
alloc.destroy(example);
}