title: Standard regarding to Implicit conversion from double to int in an assignment
body: <p>Here's an implicit conversion from <code>double</code> to <code>int</code>.</p>
  <pre><code>{
    const double d = 4294967296.0;
    int i = d; // no warning from compiler clang(1205.0.22.11)
    ...
  }
  </code></pre>
  <p>Many other questions related to this such as <a href="https://stackoverflow.com/questions/39282602/why-doesnt-clang-warn-about-implicit-conversion-from-double-to-int-but-do-it-w">Why doesn&#39;t clang warn about implicit conversion from double to int, but do it when from long to int?</a> says that
  following standard is applied for this.</p>
  <blockquote>
  <p>4.9 Floating-integral conversions.</p>
  <ol>
  <li>A prvalue of a floating point type can be converted to a prvalue of an integer type. The conversion truncates; that is, the fractional part is discarded. The behavior is undefined if the truncated value cannot be represented in the destination type. [ Note: If the destination type is bool, see 4.12. — end note ]</li>
  </ol>
  </blockquote>
  <p>But I think <code>d</code> is an lvalue not a prvalue in the <code>int i = d;</code>.
  Which standard is applied in this case so that the compiler doesn't generate any warnings?</p>