https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116531
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed| |2024-08-29 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The error comes from the std::vector destructor, which does require the Elem type to be complete. So the question is why List() { } requires the vector destructor, and only for arm (an EABI difference?) and only for C++20 not C++17. I tried adding 'noexcept' to the List() constructor but that didn't change anything. I also tried commenting out the r14-9635-g142cc4c223d695 change adding a requires-clause to a vector base class (which is a difference between C++17 and C++20) but that didn't change it.