<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 24 May 2017 at 14:35, Marshall Clow via Phabricator via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">mclow.lists added a comment.<br>
<br>
This broke a libc++ test.  The following is expected to fail to compile:<br>
<br>
  #include <complex><br>
  #include <cassert><br>
<br>
  int main()<br>
  {<br>
      std::complex<float> foo  = 1.0if;  // should fail w/conversion operator not found<br>
  }<br>
<br>
when build as C++1z</blockquote><div><br></div><div>I think this is expected. Clang has an extension where it treats 1.0if as a _Complex float if no operator""if is available; libc++ has an extension where std::complex<float> can be initialized from _Complex float. For the same reason, that code has historically worked in C++11 and C++98 modes.</div></div></div></div>