https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92059
--- Comment #2 from John Harris <jharris at simplexinvestments dot com> --- I figured this out. The assignment operator doesn't have a return statement. Why that matters, I don't know. But adding return *this fixes it.