[cfe-dev] RFC: Default language standard mode policy

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 30 13:41:00 PDT 2016

On Thu, Jun 30, 2016 at 2:02 AM, David Chisnall <david.chisnall at cl.cam.ac.uk
> wrote:

> On 29 Jun 2016, at 23:07, Richard Smith via cfe-dev <
> cfe-dev at 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.

What code would be broken by keeping the default at the language version
> accepted by code that didn’t know about newer standards?

Any code written for modern GCC. Any code written for modern MSVC.

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.

At some point (although probably not for at least a decade) I expect we
will want to remove C++98 support from Clang.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160630/705d28b1/attachment-0001.html>

More information about the cfe-commits mailing list