* [wwwdocs] Re: C++ Concepts available in trunk?
@ 2015-08-13 9:04 Jonathan Wakely
2015-08-13 9:31 ` Jonathan Wakely
2015-09-07 11:03 ` Gerald Pfeifer
0 siblings, 2 replies; 6+ messages in thread
From: Jonathan Wakely @ 2015-08-13 9:04 UTC (permalink / raw)
To: Dijk, J. van; +Cc: gcc-help, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 383 bytes --]
On 12 August 2015 at 23:54, Dijk, J. van wrote:
> Thanks for the clarification. I hope the attached patch against current
> wwwdocs will be of use (only the name of the feature test macro is missing
> in the new file cxx1z.html; did not manage to find that.)
Thanks, I've committed the attached change to the wwwdocs repo.
I'll add the other new C++17 features to it later today.
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 5766 bytes --]
Index: htdocs/gcc-6/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.19
diff -u -r1.19 changes.html
--- htdocs/gcc-6/changes.html 31 Jul 2015 12:06:47 -0000 1.19
+++ htdocs/gcc-6/changes.html 13 Aug 2015 08:35:44 -0000
@@ -68,8 +68,33 @@
<h3 id="cxx">C++</h3>
<ul>
<li>The default mode has been changed to <code>-std=gnu++14</code>.</li>
+ <li>C++ Concepts are now supported when compiling with
+ <code>-std=gnu++1z</code> or <code>-std=c++1z</code>.</li>
</ul>
+<h4 id="libstdcxx">Runtime Library (libstdc++)</h4>
+ <ul>
+ <li> Experimental support for C++17, including the following
+ new features:
+ <ul>
+ <li><code>std::uncaught_exceptions</code> function (this is also
+ available for <tt>-std=gnu++NN</tt> modes); </li>
+ <li>new member functions <code>try_emplace</code> and
+ <code>insert_or_assign</code> for unique_key maps;</li>
+ <li>non-member functions <code>std::size</code>,
+ <code>std::empty</code>, and <code>std::data</code> for
+ accessing containers and arrays;
+ <li><code>std::shared_mutex</code>;</li>
+ <li><code>std::void_t</code> and <code>std::bool_constant</code>
+ utilities. </li>
+ </ul>
+ </li>
+ <li>An experimental implementation of the File System TS.</li>
+ <li>Experimental support for most features of the second version of the
+ Library Fundamentals TS.</li>
+ </ul>
+
+
<h3 id="fortran">Fortran</h3>
<ul>
<li>The <code>MATMUL</code> intrinsic is now inlined for straightforward
Index: htdocs/projects/cxx1y.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1y.html,v
retrieving revision 1.23
diff -u -r1.23 cxx1y.html
--- htdocs/projects/cxx1y.html 19 Apr 2015 18:21:43 -0000 1.23
+++ htdocs/projects/cxx1y.html 13 Aug 2015 08:35:44 -0000
@@ -167,23 +167,9 @@
<h2>C++14 Library Features</h2>
<p>The status of the library implementation can be tracked in this
- <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014">table</a>
+ <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014">table</a>.
</p>
- <h2>Development Branches</h2>
-
- <a name="concepts"></a><h3>C++1z Concepts Branch</h3>
-
-<p>Concepts was a major feature planned for the C++11 standard, but it was
-eventually dropped due to concerns about both the description and
-implementability. Since the publication of C++11, people have been working
-on scaled-down versions of the concepts feature. One approach to concepts,
-known as <a href="http://concepts.axiomatics.org/~ans/">Concepts Lite</a>,
-has been prototyped in GCC and seems likely to be published as a Technical
-Specification in 2015. The initial implementation is available from the
-link above, and it is in the process of being cleaned up and moved into
-the <code>c++-concepts</code> branch.</p>
-
</body>
</html>
Index: htdocs/projects/cxx1z.html
===================================================================
RCS file: htdocs/projects/cxx1z.html
diff -N htdocs/projects/cxx1z.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ htdocs/projects/cxx1z.html 13 Aug 2015 08:35:44 -0000
@@ -0,0 +1,66 @@
+<html>
+<head>
+ <title>C++1z Support in GCC</title>
+ <style type="text/css">
+ /* <![CDATA[*/
+ tr.separator { background: #ffffcc}
+ .supported { color: green }
+ .unsupported { color: red }
+ /* ]]> */
+ </style>
+</head>
+
+<body>
+ <h1>C++1z Support in GCC</h1>
+
+ <p>GCC has experimental support for the next revision of the C++
+ standard, which is expected to be published in 2017.</p>
+
+ <p>C++1z features are available as part of the "mainline" GCC
+ compiler in the trunk of
+ <a href="../svn.html">GCC's Subversion
+ repository</a> and in GCC 4.9 and later. To enable C++1z
+ support, add the command-line parameter <code>-std=c++1z</code>
+ to your <code>g++</code> command line. Or, to enable GNU
+ extensions in addition to C++1z extensions,
+ add <code>-std=gnu++1z</code> to your <code>g++</code> command
+ line.</p>
+
+ <p><strong>Important</strong>: Because the final ISO C++1z standard is
+ still evolving, GCC's support is <strong>experimental</strong>. No attempt
+ will be made to maintain backward compatibility with implementations of
+ C++1y features that do not reflect the final standard.</p>
+
+<h2>C++1z Language Features</h2>
+
+ <p>The following table lists new language features that have been
+ accepted into the C++1z working draft or an ISO TS. The "Proposal" column
+ provides a link to the ISO C++ committee proposal that describes the
+ feature, while the "Available in GCC?" column indicates the first
+ version of GCC that contains an implementation of this feature (if
+ it has been implemented).</p>
+
+ <table border="1">
+ <tr class="separator">
+ <th>Language Feature</th>
+ <th>Proposal</th>
+ <th>Available in GCC?</th>
+ <th>SD-6 Feature Test</th>
+ </tr>
+ <tr>
+ <td>C++ concepts</td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf">N4377</a></td>
+ <td class="supported" align="center"><a href="../gcc-6/changes.html#cxx">6</a></td>
+ <td> __cpp_concepts >= 201507 </td>
+ </tr>
+ </table>
+
+ <h2>C++1z Library Features</h2>
+
+ <p>The status of the library implementation can be tracked in this
+ <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z">table</a>.
+ </p>
+
+</body>
+</html>
+
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [wwwdocs] Re: C++ Concepts available in trunk?
2015-08-13 9:04 [wwwdocs] Re: C++ Concepts available in trunk? Jonathan Wakely
@ 2015-08-13 9:31 ` Jonathan Wakely
2015-08-13 14:38 ` Jonathan Wakely
2015-09-07 11:03 ` Gerald Pfeifer
1 sibling, 1 reply; 6+ messages in thread
From: Jonathan Wakely @ 2015-08-13 9:31 UTC (permalink / raw)
To: Dijk, J. van; +Cc: gcc-help, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 522 bytes --]
Here's the patch for the rest of the C++17 support.
On 13 August 2015 at 09:58, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On 12 August 2015 at 23:54, Dijk, J. van wrote:
>> Thanks for the clarification. I hope the attached patch against current
>> wwwdocs will be of use (only the name of the feature test macro is missing
>> in the new file cxx1z.html; did not manage to find that.)
>
> Thanks, I've committed the attached change to the wwwdocs repo.
>
> I'll add the other new C++17 features to it later today.
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 3178 bytes --]
Index: htdocs/projects/cxx1z.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.1
diff -u -r1.1 cxx1z.html
--- htdocs/projects/cxx1z.html 13 Aug 2015 08:36:07 -0000 1.1
+++ htdocs/projects/cxx1z.html 13 Aug 2015 09:24:13 -0000
@@ -19,7 +19,7 @@
<p>C++1z features are available as part of the "mainline" GCC
compiler in the trunk of
<a href="../svn.html">GCC's Subversion
- repository</a> and in GCC 4.9 and later. To enable C++1z
+ repository</a> and in GCC 5 and later. To enable C++1z
support, add the command-line parameter <code>-std=c++1z</code>
to your <code>g++</code> command line. Or, to enable GNU
extensions in addition to C++1z extensions,
@@ -48,9 +48,58 @@
<th>SD-6 Feature Test</th>
</tr>
<tr>
+ <td> Removing trigraphs </td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html">N4086</a> </td>
+ <td class="supported" align="center">5.1</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code>u8</code> character literals </td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html">N4267</a> </td>
+ <td class="supported" align="center"> 6 </td>
+ <td> __cpp_unicode_characters >= 201411 </td>
+ </tr>
+ <tr>
+ <td> Folding expressions</td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html">N4295</a> </td>
+ <td class="supported" align="center"> 6 </td>
+ <td> __cpp_fold_expressions >= 201411</td>
+ </tr>
+ <tr>
+ <td> Attributes for namespaces and enumerators </td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html">N4266</a> </td>
+ <td class="supported" align="center">
+ 4.9 (namespaces) <br /> 6 (enumerators)
+ </td>
+ <td>
+ __cpp_namespace_attributes >= 201411 <br />
+ __cpp_enumerator_attributes >= 201411
+ </td>
+ </tr>
+ <tr>
+ <td> Nested namespace definitions</td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html">N4230</a> </td>
+ <td class="unsupported" align="center">No</td>
+ <td> __cpp_nested_namespace_definitions >= 201411</td>
+ </tr>
+ <tr>
+ <td> Allow constant evaluation for all non-type template arguments</td>
+ <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html">N4268</a> </td>
+ <td class="unsupported" align="center">No</td>
+ <td>__cpp_nontype_template_args >= 201411 </td>
+ </tr>
+ <!--
+ <tr>
+ <td> </td>
+ <td> </td>
+ <td class="unsupported" align="center">No</td>
+ <td> </td>
+ </tr>
+ -->
+ <tr>
<td>C++ concepts</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf">N4377</a></td>
- <td class="supported" align="center"><a href="../gcc-6/changes.html#cxx">6</a></td>
+ <td class="supported" align="center"> 6 </td>
<td> __cpp_concepts >= 201507 </td>
</tr>
</table>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [wwwdocs] Re: C++ Concepts available in trunk?
2015-08-13 9:31 ` Jonathan Wakely
@ 2015-08-13 14:38 ` Jonathan Wakely
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Wakely @ 2015-08-13 14:38 UTC (permalink / raw)
To: Dijk, J. van; +Cc: gcc-help, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 636 bytes --]
And a small correction.
On 13 August 2015 at 10:24, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> Here's the patch for the rest of the C++17 support.
>
> On 13 August 2015 at 09:58, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
>> On 12 August 2015 at 23:54, Dijk, J. van wrote:
>>> Thanks for the clarification. I hope the attached patch against current
>>> wwwdocs will be of use (only the name of the feature test macro is missing
>>> in the new file cxx1z.html; did not manage to find that.)
>>
>> Thanks, I've committed the attached change to the wwwdocs repo.
>>
>> I'll add the other new C++17 features to it later today.
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 679 bytes --]
Index: htdocs/projects/cxx1z.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.2
diff -u -r1.2 cxx1z.html
--- htdocs/projects/cxx1z.html 13 Aug 2015 09:24:30 -0000 1.2
+++ htdocs/projects/cxx1z.html 13 Aug 2015 14:31:40 -0000
@@ -62,7 +62,7 @@
<tr>
<td> Folding expressions</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html">N4295</a> </td>
- <td class="supported" align="center"> 6 </td>
+ <td class="unsupported" align="center"> No </td>
<td> __cpp_fold_expressions >= 201411</td>
</tr>
<tr>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [wwwdocs] Re: C++ Concepts available in trunk?
2015-08-13 9:04 [wwwdocs] Re: C++ Concepts available in trunk? Jonathan Wakely
2015-08-13 9:31 ` Jonathan Wakely
@ 2015-09-07 11:03 ` Gerald Pfeifer
2015-09-07 11:33 ` Jonathan Wakely
1 sibling, 1 reply; 6+ messages in thread
From: Gerald Pfeifer @ 2015-09-07 11:03 UTC (permalink / raw)
To: Jonathan Wakely; +Cc: gcc-patches
Jonathan,
On Thu, 13 Aug 2015, Jonathan Wakely wrote:
> Thanks, I've committed the attached change to the wwwdocs repo.
looking at this I noticed a reference to "Subversion", when in
general we have tried to minimize references to specific version
control systems.
And I noticed we can be a little less verbose later in that
section.
And then I noticed, those two versions actually have been
propagating from cxx0x.html to cxx0y.html to cxx0z.html over
the years, so I made essentially the same set of simplications
to all three of them.
What do you think? I have not committed this yet.
Gerald
Index: cxx0x.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx0x.html,v
retrieving revision 1.67
diff -u -r1.67 cxx0x.html
--- cxx0x.html 26 Jan 2015 11:12:43 -0000 1.67
+++ cxx0x.html 7 Sep 2015 10:47:28 -0000
@@ -18,14 +18,13 @@
compiler to bring feature-complete C++11 to C++ programmers.</p>
<p>C++11 features are available as part of the "mainline" GCC
- compiler in the trunk of
- <a href="../svn.html">GCC's Subversion
- repository</a> and in GCC 4.3 and later. To enable C++0x
+ compiler in the trunk of <a href="../svn.html">GCC's repository</a>
+ and in GCC 4.3 and later. To enable C++0x
support, add the command-line parameter <code>-std=c++0x</code>
to your <code>g++</code> command line. Or, to enable GNU
- extensions in addition to C++0x extensions,
- add <code>-std=gnu++0x</code> to your <code>g++</code> command
- line. GCC 4.7 and later support <code>-std=c++11</code> and
+ extensions in addition to C++0x extensions,
+ add <code>-std=gnu++0x</code>.
+ GCC 4.7 and later support <code>-std=c++11</code> and
<code>-std=gnu++11</code> as well.</p>
<p><strong>Important</strong>: GCC's support for C++11 is still
Index: cxx1y.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1y.html,v
retrieving revision 1.24
diff -u -r1.24 cxx1y.html
--- cxx1y.html 13 Aug 2015 08:36:07 -0000 1.24
+++ cxx1y.html 7 Sep 2015 10:47:28 -0000
@@ -17,14 +17,12 @@
standard, which was published in 2014.</p>
<p>C++14 features are available as part of the "mainline" GCC
- compiler in the trunk of
- <a href="../svn.html">GCC's Subversion
- repository</a> and in GCC 4.8 and later. To enable C++14
+ compiler in the trunk of <a href="../svn.html">GCC's repository</a>
+ and in GCC 4.8 and later. To enable C++14
support, add the command-line parameter <code>-std=c++14</code>
to your <code>g++</code> command line. Or, to enable GNU
- extensions in addition to C++14 extensions,
- add <code>-std=gnu++14</code> to your <code>g++</code> command
- line.</p>
+ extensions in addition to C++14 extensions,
+ add <code>-std=gnu++14</code>.</p>
<p><strong>Important</strong>: Because the final ISO C++14 standard was only
recently published, GCC's support is <strong>experimental</strong>. No attempt
Index: cxx1z.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.3
diff -u -r1.3 cxx1z.html
--- cxx1z.html 13 Aug 2015 14:32:10 -0000 1.3
+++ cxx1z.html 7 Sep 2015 10:47:28 -0000
@@ -17,14 +17,12 @@
standard, which is expected to be published in 2017.</p>
<p>C++1z features are available as part of the "mainline" GCC
- compiler in the trunk of
- <a href="../svn.html">GCC's Subversion
- repository</a> and in GCC 5 and later. To enable C++1z
+ compiler in the trunk of <a href="../svn.html">GCC's repository</a>
+ and in GCC 5 and later. To enable C++1z
support, add the command-line parameter <code>-std=c++1z</code>
to your <code>g++</code> command line. Or, to enable GNU
extensions in addition to C++1z extensions,
- add <code>-std=gnu++1z</code> to your <code>g++</code> command
- line.</p>
+ add <code>-std=gnu++1z</code>.</p>
<p><strong>Important</strong>: Because the final ISO C++1z standard is
still evolving, GCC's support is <strong>experimental</strong>. No attempt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [wwwdocs] Re: C++ Concepts available in trunk?
2015-09-07 11:03 ` Gerald Pfeifer
@ 2015-09-07 11:33 ` Jonathan Wakely
2015-09-07 21:27 ` Gerald Pfeifer
0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Wakely @ 2015-09-07 11:33 UTC (permalink / raw)
To: Gerald Pfeifer; +Cc: gcc-patches
On 7 September 2015 at 11:51, Gerald Pfeifer wrote:
> Jonathan,
>
> On Thu, 13 Aug 2015, Jonathan Wakely wrote:
>> Thanks, I've committed the attached change to the wwwdocs repo.
>
> looking at this I noticed a reference to "Subversion", when in
> general we have tried to minimize references to specific version
> control systems.
>
> And I noticed we can be a little less verbose later in that
> section.
>
> And then I noticed, those two versions actually have been
> propagating from cxx0x.html to cxx0y.html to cxx0z.html over
> the years, so I made essentially the same set of simplications
> to all three of them.
>
> What do you think? I have not committed this yet.
Nice, I think they are good improvements.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [wwwdocs] Re: C++ Concepts available in trunk?
2015-09-07 11:33 ` Jonathan Wakely
@ 2015-09-07 21:27 ` Gerald Pfeifer
0 siblings, 0 replies; 6+ messages in thread
From: Gerald Pfeifer @ 2015-09-07 21:27 UTC (permalink / raw)
To: Jonathan Wakely; +Cc: gcc-patches
On Mon, 7 Sep 2015, Jonathan Wakely wrote:
> Nice, I think they are good improvements.
Cool. I committed this, only to notice another change.
GCC stands for GNU Compiler Collection, to GCC compiler would
expand to GNU Compiler Collection compiler, which feels a bit
redundant. ;-)
I'll wait a bit before committing this in case you or anyone
else has comments.
Gerald
Index: cxx0x.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx0x.html,v
retrieving revision 1.68
diff -u -r1.68 cxx0x.html
--- cxx0x.html 7 Sep 2015 13:09:09 -0000 1.68
+++ cxx0x.html 7 Sep 2015 20:17:10 -0000
@@ -17,8 +17,8 @@
implement new C++11 features in GCC, and made it the first
compiler to bring feature-complete C++11 to C++ programmers.</p>
- <p>C++11 features are available as part of the "mainline" GCC
- compiler in the trunk of <a href="../svn.html">GCC's repository</a>
+ <p>C++11 features are available as part of "mainline" GCC
+ in the trunk of <a href="../svn.html">GCC's repository</a>
and in GCC 4.3 and later. To enable C++0x
support, add the command-line parameter <code>-std=c++0x</code>
to your <code>g++</code> command line. Or, to enable GNU
Index: cxx1y.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1y.html,v
retrieving revision 1.25
diff -u -r1.25 cxx1y.html
--- cxx1y.html 7 Sep 2015 13:09:10 -0000 1.25
+++ cxx1y.html 7 Sep 2015 20:17:10 -0000
@@ -16,8 +16,8 @@
<p>GCC has support for the latest revision of the C++
standard, which was published in 2014.</p>
- <p>C++14 features are available as part of the "mainline" GCC
- compiler in the trunk of <a href="../svn.html">GCC's repository</a>
+ <p>C++14 features are available as part of "mainline" GCC
+ in the trunk of <a href="../svn.html">GCC's repository</a>
and in GCC 4.8 and later. To enable C++14
support, add the command-line parameter <code>-std=c++14</code>
to your <code>g++</code> command line. Or, to enable GNU
Index: cxx1z.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.4
diff -u -r1.4 cxx1z.html
--- cxx1z.html 7 Sep 2015 13:09:10 -0000 1.4
+++ cxx1z.html 7 Sep 2015 20:17:10 -0000
@@ -16,8 +16,8 @@
<p>GCC has experimental support for the next revision of the C++
standard, which is expected to be published in 2017.</p>
- <p>C++1z features are available as part of the "mainline" GCC
- compiler in the trunk of <a href="../svn.html">GCC's repository</a>
+ <p>C++1z features are available as part of "mainline" GCC
+ in the trunk of <a href="../svn.html">GCC's repository</a>
and in GCC 5 and later. To enable C++1z
support, add the command-line parameter <code>-std=c++1z</code>
to your <code>g++</code> command line. Or, to enable GNU
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-09-07 20:20 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-13 9:04 [wwwdocs] Re: C++ Concepts available in trunk? Jonathan Wakely
2015-08-13 9:31 ` Jonathan Wakely
2015-08-13 14:38 ` Jonathan Wakely
2015-09-07 11:03 ` Gerald Pfeifer
2015-09-07 11:33 ` Jonathan Wakely
2015-09-07 21:27 ` Gerald Pfeifer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).