http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57986 --- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- thread(const thread &X) { swap(const_cast<struct thread &>(X)); } This is insane, don't do that.