title: Implicitly deleted default constructor works in C++14
body: <p>I was doing some tests for some code that did not compile, and I discovered that this code:</p>
  
  <pre><code>struct A {
      A(int) {};
      virtual void foo() = 0;
  };
  
  struct B : public virtual A {
      virtual void bar() = 0;
  };
  
  struct C : public B {
      C() : A(1) {}
      virtual void foo() override {}
      virtual void bar() override {}
  };
  
  int main() {
      C c;
      return 0;
  }
  </code></pre>
  
  <p>In C++11 fails to compile (on g++ 7.0.1) with <code>‘B::B()’ is implicitly deleted because the default definition would be ill-formed</code>, while in C++14 compiles successfully.</p>
  
  <p>I've tried to find out which new feature of C++14 allowed this to work, to no avail. The <a href="http://en.cppreference.com/w/cpp/language/default_constructor#Deleted_implicitly-declared_default_constructor" rel="noreferrer">description</a> in cppreference does not mention anything of the sort it seems.</p>
  
  <p><strong>Why can this code compile in C++14 but not in C++11?</strong></p>