title: Deleted copy constructor results in deleted default constructor
body: <p>This code will not compile with gcc 4.7.0:</p>
  <pre><code>class Base
  {
  public:
      Base(const Base&amp;) = delete;
  }; 
  
  class Derived : Base
  {
  public:
      Derived(int i) : m_i(i) {}
  
      int m_i;
  };
  </code></pre>
  <p>The error is:</p>
  <pre><code>c.cpp: In constructor `Derived::Derived(int)´:
  c.cpp:10:24: error: no matching function for call to `Base::Base()´
  c.cpp:10:24: note: candidate is:
  c.cpp:4:2: note: Base::Base(const Base&amp;) &lt;deleted&gt;
  c.cpp:4:2: note:   candidate expects 1 argument, 0 provided
  </code></pre>
  <p>In other words, the compiler does not generate a default constructor for the base class, and instead tries to call the <em>deleted</em> copy constructor as the only available overload.</p>
  <p>Is that normal behavior?</p>