The current run-time implementation is as below:
#define ASSERT_LAST_Member(Class, Member) {Class foo; assert(((size_t)(&foo) + sizeof(foo)) == ((size_t)(&foo.Member) + sizeof(foo.Member)));}
How can I do static assert while compiling? I've tried to do this, but it didn't work.
#define assert_static(e) \
do { \
enum { assert_static__ = 1/(e) }; \
} while (0)
#define ASSERT_LAST_Member(Class, Member) { assert_static(((size_t)&((Class*)0)->Member)+sizeof(((Class*)0)->Member)==sizeof(Class)) }