<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Mar 3, 2017 at 1:15 PM, Richard Smith via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="gmail-">On 3 March 2017 at 08:06, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, Mar 3, 2017 at 7:57 AM, Reid Kleckner via cfe-dev<br>
<span><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br>
> On Fri, Mar 3, 2017 at 9:20 AM, Mehdi Amini via cfe-dev<br>
> <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> On Mar 2, 2017, at 10:57 PM, Robinson, Paul <<a href="mailto:paul.robinson@sony.com" target="_blank">paul.robinson@sony.com</a>><br>
>> wrote:<br>
>><br>
>> Obviously in some cases target-specific defaults make a lot of sense --<br>
>> for instance if we know that a target or its ABI or toolchain simply doesn't<br>
>> support some feature, or needs special support for something -- but in the<br>
>> absence of a strong reason, we should generally aim for all targets to<br>
>> behave roughly the same.<br>
>><br>
>> And in our case, the PS4 target simply doesn't support dialects other than<br>
>> C++11, therefore the target-specific default makes sense.<br>
>><br>
>><br>
>> I gave an alternative view that shows that “it makes sense” is not<br>
>> obvious.<br>
><br>
><br>
> FWIW we already default to C++11 in an MSVC environment, regardless of the<br>
> driver used, because it's required to compile the MSVC STL headers. It's<br>
> pretty close to Paul's use case of "the PS4 target simply doesn't support<br>
> dialects other than C++11". There's definitely prior art here.<br>
><br>
> +1 to what James said, we should just raise the language standard across the<br>
> board.<br>
<br>
</span>+1</blockquote><div><br></div></span><div>Would raising the language standard to C++14 cause problems for PS4 or MSVC? Is the constraint there "at least C++11" (because, say, the system headers are written in C++11) or "exactly C++11" (and if so, why?)? </div></div></div></div></blockquote><div><br></div><div>I think clang-cl already defaults to C++14 (in MSVC2015 compat mode -- <a href="http://llvm-cs.pcc.me.uk/tools/clang/lib/Driver/Tools.cpp#4727">http://llvm-cs.pcc.me.uk/tools/clang/lib/Driver/Tools.cpp#4727</a>). MSVC used to not have a flag like -std and cl used to always support the newest C++, with toggles for some language features that have compat implications. For 17, they did add a flag. We went over this on one of the former threads on this topic (<a href="http://lists.llvm.org/pipermail/cfe-dev/2016-June/049733.html">http://lists.llvm.org/pipermail/cfe-dev/2016-June/049733.html</a>) :-) </div></div><br></div></div>