title: "default constructor cannot be referenced" in Visual Studio 2015
body: <p>I am facing a really weird error message in Visual Studio 2015. The following stripped down code:   </p>
  
  <pre><code>struct A
  {
      A(int val = 0)
      :
          x(val)
      {}
  
      int x = 0;
  };
  
  struct B: A
  {
      static int y;
  };
  
  int B::y = 1;
  
  struct C: B
  {
  
  };
  
  int main()
  {
      C c;
      return 0;
  }
  </code></pre>
  
  <p>compiles without any problem on Clang. However Visual Studio 2015 IntelliSense gives the following error message:</p>
  
  <pre><code>the default constructor of "C" cannot be referenced -- it is a deleted function
  </code></pre>
  
  <p>Am I missing something in my code, or this is a bug in Visual Studio?</p>
  
  <hr>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Based on the comments and answers here I have opened a <a href="https://connect.microsoft.com/VisualStudio/feedback/details/2070261" rel="noreferrer">bug report</a> on Microsoft Connect.</p>