[cfe-dev] [libcxx] Policy with respect to language extensions

Gonzalo BG gonzalobg88 at gmail.com
Wed Aug 12 07:12:40 PDT 2015


In the following I mean by "language extension" anything that is not in the
C++11/14 draft nor accepted in the C++1z draft.

Since I use libc++ I've seen a tendency to enable/experiment with language
extensions silently by default. This has always resulted into trouble for
me:

Three cases come to mind:

- "return {...}; into a std::tuple"
- constexpr invoke
- std::bitset::const_reference

These extensions make sense, users might expect them, and as a consequence
it is easy to use these extensions without knowing that one is writing
non-portable code.

I like that people experiment and add extensions to libc++ and wish it
would be done more often as long as the extensions are always opt-in (e.g.
put behind a macro).

Does libc++ has a policy with respect to extensions?

If so, what is this policy?

Otherwise, should it have one?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150812/7ce54b57/attachment.html>


More information about the cfe-dev mailing list