title: Declaring a variable with two types: "int char"
body: <p>I'm a C++ beginner, and I'm reading <em>Bjarne Stroustrup's Programming: Principles and Practice Using C++</em>.</p>
  
  <p>In the section on <em>3.9.2 Unsafe conversions</em>, the author mentioned </p>
  
  <blockquote>
    <p>When the initializer is an integer literal, the compiler can check the actual value and accept values that do not imply narrowing:</p>
  
  <pre><code>int char b1 {1000};     // error: narrowing (assuming 8-bit chars)
  </code></pre>
  </blockquote>
  
  <p>I'm puzzled by this declaration. It uses two types (<code>int</code> and <code>char</code>). I have never seen such declaration in Java and Swift before (the two languages I'm relatively familiar with). Is this a typo or a valid C++ syntax?</p>