title: std::is_nothrow_constructible when constructor is inherited
body: <p>Consider following two examples:</p>
  
  <pre><code>struct A {
      A () noexcept = default;
  };
  
  struct B : A {
      B () noexcept = default;
  
      template &lt;typename T&gt;
      B (T) noexcept {}
  };
  
  struct C : A {
      using A::A;
  
      template &lt;typename T&gt;
      C (T) noexcept {} 
  };
  </code></pre>
  
  <p>and usage:</p>
  
  <pre><code>std::cout &lt;&lt; std::is_nothrow_constructible&lt;B&gt;::value &lt;&lt; std::endl; // (X)
  std::cout &lt;&lt; std::is_nothrow_constructible&lt;B, int&gt;::value &lt;&lt; std::endl;
  
  std::cout &lt;&lt; std::is_nothrow_constructible&lt;C&gt;::value &lt;&lt; std::endl; // (Y)
  std::cout &lt;&lt; std::is_nothrow_constructible&lt;C, int&gt;::value &lt;&lt; std::endl;
  </code></pre>
  
  <p>Output is:</p>
  
  <pre><code>1
  1
  0
  1
  </code></pre>
  
  <p>Compiler used: GCC 4.8.1.</p>
  
  <p>So, If I write explicitly default <code>B</code> constructor, <code>(X)</code> produces 1, on the other hand if default <code>C</code> constructor is available because of the inheritance, <code>(Y)</code> produces 0. Why is that?</p>
  
  <p><strong>Does it mean that inherited constructors are not taken into account when <code>is_nothrow_constructible</code> trait is used?</strong></p>