prog.cpp:14:9: error: static assertion failed: TySelf is not what it should be
static_assert(int(static_self_check_token) == \
^
prog.cpp:23:9: note: in expansion of macro ‘DECLARE_SELF’
DECLARE_SELF(ABC); // fails
^
prog.cpp: In member function ‘void XYZ::self_check()’:
prog.cpp:10:13: error: static assertion failed: TySelf is not what it should be
static_assert(std::is_same<decltype(*((TySelf*)(0))), \
^
prog.cpp:23:9: note: in expansion of macro ‘DECLARE_SELF’
DECLARE_SELF(ABC); // fails
^
prog.cpp: In instantiation of ‘struct XYZt<int>’:
prog.cpp:35:12: required from here
prog.cpp:14:9: error: static assertion failed: TySelf is not what it should be
static_assert(int(static_self_check_token) == \
^
prog.cpp:29:9: note: in expansion of macro ‘DECLARE_SELF’
DECLARE_SELF(ABC); // fails, if XYZt is instantiated
^
prog.cpp: In function ‘int main()’:
prog.cpp:35:12: warning: unused variable ‘instantiate_me’ [-Wunused-variable]
XYZt<int> instantiate_me;
^