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. :(

Reply via email to