title: Why doesn't "auto ch = unsigned char{'p'}" compile under C++ 17?
body: <p>I'm puzzled. Isn't <code>const auto ch = unsigned char{'p'};</code> a perfectly valid initialization expression? Fails to be compiled by all three major compilers with almost identical error messages:</p>
  
  <blockquote>
    <p>error: expected '(' for function-style cast or type construction</p>
  </blockquote>
  
  <p>Swapping curly braces for <code>('p')</code> changes nothing.
  It does, however, compile without the <code>signed</code> or <code>unsigned</code> keyword.</p>
  
  <p><strong><a href="https://godbolt.org/z/C1Ak4v" rel="noreferrer">Online demo.</a></strong></p>