Re: Support for __VA_OPT__ in gcc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 1 Oct 2019 at 15:59, Edward Diener
<eldlistmailingz@xxxxxxxxxxxxxx> wrote:
>
> On 10/1/2019 7:13 AM, Jonathan Wakely wrote:
> > On Tue, 1 Oct 2019 at 01:25, Edward Diener wrote:
> >> How do I find out, for a given gcc compiler product such as gcc-9.2,
> >> what the gnu extensions are when I specify '-std=c++nn' and when I
> >> specify '-std=gnu++nn' for any given valid 'nn' ? When I look in the
> >> documentation for '-std' in gcc-9.2 the only explanation I can see at
> >> https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/C-Dialect-Options.html#C-Dialect-Options
> >> does not give me that information. Does it exist somewhere online or in
> >> the gcc docs ?
> >
> > The documented extensions (and when they are enabled) are covered in
> > https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/#toc-Extensions-to-the-C-Language-Family
> > and https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/#toc-Extensions-to-the-C_002b_002b-Language
> > (or just search for "extensions" in the TOC).
> >
>
> Thanks for the links. But I am trying to understand the difference
> between, let's say, '-std=c++17' and '-std=gnu++17'. Clearly they can
> not be offering the exact same gnu extensions, else there would not be
> two different settings for the C++ standard 2017 in gcc.

Wrong. They could enable exactly the same set of extensions. It would
be confusing and annoying to users to *not* provide a -std=gnu++17
option given that we have -std=c++NN and -std=gnu++NN for every
previous standard. So it's wrong to assume "clearly" they can't mean
the same thing.

> You have said
> that '-std=c++17' is not necessarily just the C++17 standard but may
> also include some gnu extensions. So the gnu extensions included in
> '-std=c++17' must be different than the gnu extensions included in
> '-std=gnu++17'.

No, as above.

> How is it possible to find out the difference in gnu
> extensions between the two ? Is there any documentation that explains
> that difference, or is it left for the programmer to experiment and see
> what is there in each case ?

Read the manual sections I linked to. For each extension, if it
conflicts with the base standard it will only be enabled for the
gnu++NN modes, not the c++NN modes, and should be documented as such.

I'm not going to do reading that for you.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux