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. 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'. 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 ?