<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 29, 2016 at 2:48 PM, Joerg Sonnenberger 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"><span class="">On Wed, Jun 29, 2016 at 12:09:37PM -0700, Richard Smith via cfe-dev wrote:<br>
> Hi all!<br>
><br>
> I'd like to establish a policy for Clang's default language standard (if<br>
> none is specified with -std), as follows:<br>
><br>
>   Clang defaults to the most recent published standard for the selected<br>
> language that it fully implements.<br>
><br>
> The practical impact of this is that clang++ will default to C++14 for C++<br>
> compilations (for version 3.9 onwards) and will default to C++17 once our<br>
> implementation support is complete and the standard is published (whichever<br>
> happens later).<br>
<br>
</span>I don't have a problem with the C11 default, because the language impact<br>
is minimal. That's quite different from C++ though and I am very<br>
reluctant to update the default language even to C++11. There is a lot<br>
of code in the wild that doesn't compile anymore due to stupid changes<br>
like user-defined string literals or the narrowing (warning) changes.<br>
Even worse are the nothrow changes for destructors, which silently break<br>
valid C++03 code.</blockquote><div><br></div><div>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.</div></div></div></div>