Macros for struct-like class definitions