https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111923
--- Comment #7 from Stas Sergeev <stsp at users dot sourceforge.net> --- Also I verified your assumption in comment #5 by this code: struct A { struct dummy { static constexpr const int foo(const int off = offsetof(A, a)) { return off; } static constexpr const int operator()() { return foo(); } }; static constexpr const int (*off_p)() = &dummy::operator(); int t[off_p()]; char a; }; It says: error: size of array âtâ is not an integral constant-expression 11 | int t[off_p()]; So it seems, "constexpr const" is not enough to alter the structure size, so your fears about that were likely wrong. So could you please explain why note4 doesn't apply to the nested closure type? Unless there is a consistent explanation, the chances are that the bug is missed. :(