On Wed, Aug 2, 2023 at 12:02 PM Nikolas Klauser <nikolasklau...@berlin.de> wrote:
> Hi everyone! > > I'm working on libc++ and we are currently discussing using language > extensions from later standards ( > https://discourse.llvm.org/t/rfc-use-language-extensions-from-future-standards-in-libc/71898/4). > By that I mean things like using `if constexpr` with `-std=c++11`. GCC has > quite a lot of these kinds of conforming extensions, but doesn't document > them AFAICT. While discussing using these extensions, the question came up > what GCCs support policy for these is. Aaron was kind enough to answer > these questions for us on the Clang side. Since I couldn't find anything in > the documentation, I thought I'd ask here. > > So, here are my questions: > > Do you expect that these extensions will ever be removed for some reason? > If yes, what could those reasons be? > Potentially, if they don't actually work properly in earlier standard modes. I recently noticed that while we allow DMI and =default in C++03 mode with a pedwarn, combining them doesn't work. Some of the extensions are needed by libstdc++ and are therefore well tested; these are extremely unlikely to ever be removed. libstdc++ folks, is there a list of these? Would you be interested in documenting them? > That would be useful, yes. There is a patch in review to add __has_feature/__has_extension to G++, which would seem like a suitable context for this documentation. Aaron noted that we should ask the Clang folks before using them, so they > can evaluated whether the extension makes sense, since they might not be > aware of them, and some might be broken. So I'd be interested whether you > would also like us to ask whether you want to actually support these > extensions. > Sounds good. Jason