#include #include #include "rtti.h" char* toString(var v, ...) { meta_obj_t* obj = NULL; to_string_fn_t method = NULL; va_list ap; char* s = NULL; obj = RTTI_DATA_TO_OBJ(v); if (RTTI_OBJ_INVALID(obj)) { errno = EINVAL; return NULL; } RTTI_GET_METHOD(method, obj, toString, toString); if (method == NULL) { errno = EINVAL; return NULL; } va_start(ap, v); s = method(obj, ap); va_end(ap); return s; }