Consider the following scenario: template<typename T> struct Base { // Default-constructible Base() = default; // Not copy-constructible Base(Base const &) = delete; }; template<typename T> struct Derived : Base<T> { Derived() = default; Derived(Derived const& d) :
