title: Explicit constructor and initialization with std::initializer_list
body: <pre><code>class P { 
      public:
  explicit P( int a, int b, int c) {  
      std::cout&lt;&lt;"calling explicit constructor"&lt;&lt;"\n";
      } 
  
  };
  
  
  int main() {
  
  P z {77,5,42}; // OK
  
  P w = {77,5,42}; // ERROR due to explicit (no implicit type conversion allowed)
  
  }
  </code></pre>
  
  <p>I think  <code>{77,5,42}</code> has the implicit type of <code>std::initialization_list&lt;int&gt;</code>. If that is the case what is not causing the failure of construction of variable <code>z</code>?</p>