<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 30, 2016 at 2:02 AM, David Chisnall <span dir="ltr"><<a href="mailto:david.chisnall@cl.cam.ac.uk" target="_blank">david.chisnall@cl.cam.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 29 Jun 2016, at 23:07, Richard Smith via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Yes, those are real problems, but it's not reasonable for us to keep the default at C++98/03 forever. GCC has already taken the plunge here, so a lot of open-source code that doesn't work in C++11 onwards already explicitly specifies an appropriate -std= flag.<br>
><br>
<br>
</span>Could you clarify exactly what the issue is?  Currently, if I have some legacy C++98 code, the odds are that it just compiles with ${CXX}.  If I have new C++11 or C++14 code, then its build system likely sticks on the required -std= flag and it builds independent of what the compiler default is.<br></blockquote><div><br></div><div>Why should new C++ code pay this tax to use the language that is currently called C++, that is taught as C++, that is covered by books on C++, and so on? C++98 is increasingly the odd one out, and it's the one where an explicit -std= flag should be required.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What code would be broken by keeping the default at the language version accepted by code that didn’t know about newer standards?</blockquote><div><br></div><div>Any code written for modern GCC. Any code written for modern MSVC.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As long as we’re keeping support for C++98 in the front end, keeping the default there doesn’t seem particularly arduous for us and will avoid breaking third-party code.</blockquote><div><br></div><div>At some point (although probably not for at least a decade) I expect we will want to remove C++98 support from Clang.</div></div></div></div>