title: Ambigous constructor call with list-initialization
body: <pre><code>struct A {
      A(int) {}
  };
  
  struct B {
      B(A) {}
  };
  
  int main() {
      B b({0});
  }
  </code></pre>
  
  <p>The construction of <code>b</code> gives the following errors:</p>
  
  <pre><code>In function 'int main()':
  24:9: error: call of overloaded 'B(&lt;brace-enclosed initializer list&gt;)' is ambiguous
  24:9: note: candidates are:
  11:2: note: B::B(A)
  10:8: note: constexpr B::B(const B&amp;)
  10:8: note: constexpr B::B(B&amp;&amp;)
  </code></pre>
  
  <p>I was expecting <code>B::B(A)</code> to be called, why is it ambiguous in this case?</p>