69#define objIfTmplName(iface) iface##_tmpl
75#define objIfImport(iface) extern iface objIfTmplName(iface)
82#define objIfCheck(iface) \
83 static_assert(((iface)->_implements, \
85 offsetof(*(iface), _parent) == offsetof(ObjIface, _parent)), \
94#define objIfBase(iface) \
95 ((ObjIface*)((iface)->_implements, (iface)->_parent, (iface)->_size, (iface)))
#define saDeclarePtr(name)
Dynamic arrays with type-safe generic programming.
size_t _size
Size of the entire interface structure including method pointers.
ObjIface * _implements
Implementation only: pointer to interface template being implemented.
ObjIface * _parent
Template only: parent interface for inheritance (NULL if no parent)