#include #include #include #include #include struct TraitObject { void *data; void *vtable; }; extern "C" { void *root(const void *ptr, TraitObject t); } // extern "C"