http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52755
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-03-28 17:45:24 UTC --- (In reply to comment #1) > Assigning t2s needs to use the assignment operator, but that function can't be > implicitly-defined because assigning the volatile member requires > t1s::operator=(const volatile t1s&) which doesn't exist, Actually that should say: "t1s::operator=(const volatile t1s&) volatile" which doesn't exist,