title: narrowing conversion from unsigned to double
body: <pre><code>static_assert(sizeof(unsigned) == 4, ":(");
  static_assert(sizeof(double) == 8 ,":(");
  unsigned u{42};
  double x{u};
  </code></pre>
  
  <p>g++ 4.7.1 complains about this code:</p>
  
  <pre><code>warning: narrowing conversion of 'u' from 'unsigned int' to 'double' inside { }
  </code></pre>
  
  <p>Why is this a narrowing conversion? Isn't every <code>unsigned</code> perfectly representable as a <code>double</code>? </p>