https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90745
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- Replacing delctype(auto) on the cell::operator=(X&&) function (or constraining that function to not be instantiated for non-assignable cells) will fix the code.