https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94207
--- Comment #2 from J.R. Heisey <jr at heisey dot org> --- OK I see that now. I still cannot make it work with this #define ENUM_CLASS_TEST_INIT(k) \ mEnumClassTest[k] = EnumClassTest::k; or adding whitespace between :: and k