On Thu, Jun 30, 2016 at 01:41:00PM -0700, Richard Smith wrote:
> On Thu, Jun 30, 2016 at 2:02 AM, David Chisnall <david.chisn...@cl.cam.ac.uk
> > wrote:
> 
> > On 29 Jun 2016, at 23:07, Richard Smith via cfe-dev <
> > cfe-...@lists.llvm.org> wrote:
> > >
> > > 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.
> > >
> >
> > 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.
> >
> 
> 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.

Well, if the C++ language wouldn't change in backwards incompatible
ways, we wouldn't have this discussion. As I said before, the compiler
authors are not the one paying the price for the breakage they
introduce. We've been moderately good with LLVM/Clang to not introduce
miscompiled code in the name of exploiting random UB. Changing the C++
version falls into pretty much the same category. I don't even
understand your point about paying a "tax" for using newer C++ features.
I find it pretty much the reverse actually. It clearly documents
requirements and makes them auditable as well. Given the complex
compatibility/implementation status of C++ across different systems,
that's a good thing and not something bad.

Joerg
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to