C++ gobject wrapper constructors

I am working on a custom “zero cost” gobject wrapper implemented through type punning, similarly to peel, mostly to explore the language and type system for myself, I was wondering whether I could integrate C++ constructors by overriding the GObject::constructor virtual func, either never chaining up to the parent, allocating manually and calling our c++ constructor, or through chaining up to the most derived standard glib object (not passing through construct params since the storage could be uninitialised), then calling the C++ constructor through placement new (abusing that this doesn’t attempt to initialise trivial types), then manually applying the construct properties. Is there any library that would cause this to break down?