title: Narrowing conversion from int to unsigned char
body: <p>When I try to compile this code</p>
  
  <pre><code>struct T
  {
      unsigned char x;
  };
  
  int main()
  {
      unsigned char a = 10;
      unsigned char b = 1;
  
      T t = {a + b};
  
      return 0;
  }
  </code></pre>
  
  <p>I get this error: </p>
  
  <blockquote>
    <p>error: narrowing conversion of '(((int)a) + ((int)b))' from 'int' to
    'unsigned char' inside { } [-Wnarrowing]|</p>
  </blockquote>
  
  <p>Can anyone explain me why?</p>