7#define DC_TRAIT_DELETABLE(SELF) DC_REQUIRE_METHOD(void, SELF, delete, (SELF*));
9#define DC_NO_DELETE(SELF) (void)(SELF)
11#define _DC_DERIVE_DELETE_MEMBER(MEMBER_TYPE, MEMBER_NAME) \
12 NS(MEMBER_TYPE, delete)(&self->MEMBER_NAME),
14#define DC_DERIVE_DELETE(TYPE) \
15 static void NS(TYPE, delete)(TYPE * self) { NS(TYPE, REFLECT)(_DC_DERIVE_DELETE_MEMBER); }
17#define _DC_DERIVE_STD_DELETE(TYPE, ...) \
18 static void NS(TYPE, delete)(TYPE * self ) { \
#define _DC_DERIVE_STD_DELETE(TYPE,...)
#define DC_STD_REFLECT(F,...)