http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59579
--- Comment #1 from Konstantin Sadov <Konstantin.Sadov at gmail dot com> --- Similar programs with defaulted default and move constructors work, so the problem is for copy constructor only. struct A{A()=delete;A(A&)=default;}; template <typename B> struct C:B{C()=default;C(C&)=default;}; C<A> d(d); int main(){} struct A{A()=default;A(A&&)=delete;}; template <typename B> struct C:B{C()=default;C(C&&)=default;}; C<A> d; int main(){}