title: std::is_constructible returns inconsistent value for private constructor
body: <p>What are the rules by which <code>std::is_constructible</code> handles private constructors? Given the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  class Class {
  private:
      Class() { }
  };
  
  template &lt;typename T&gt;
  class Test {
  public:
      static void test() {
          std::cout
              //&lt;&lt; std::is_constructible&lt;Class&gt;::value
              &lt;&lt; std::is_constructible&lt;T&gt;::value
              &lt;&lt; std::endl;
      }
  };
  
  int main() {
      Test&lt;Class&gt;::test();
  }
  </code></pre>
  
  <p>This prints <code>0</code> (<a href="https://ideone.com/zA277R" rel="noreferrer">ideone</a>), i.e., <code>T</code> is not default constructible.</p>
  
  <p>Uncommenting the commented line, it prints <code>11</code> (<a href="https://ideone.com/pfP31F" rel="noreferrer">ideone</a>), so <code>T</code> suddently became default constructible.</p>
  
  <p>I could find reasoning to support both results, but I don't understand how including the commented line changes the result of the second. Is this somehow invoking UB? Is this a compiler bug? Or is <code>std::is_constructible</code> really that inconsistent?</p>