This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
RE: C++ Concepts available in trunk?
- From: "Dijk, J. van" <J dot v dot Dijk at tue dot nl>
- To: "gcc-help at gnu dot org" <gcc-help at gnu dot org>
- Cc: "gcc-patches at gnu dot org" <gcc-patches at gnu dot org>, Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Date: Wed, 12 Aug 2015 22:54:35 +0000
- Subject: RE: C++ Concepts available in trunk?
- Authentication-results: sourceware.org; auth=none
- References: <6E17B6E76C7EC349BA2E592A747C0F9F050F2A67 at XSERVER21B dot campus dot tue dot nl>,<CAH6eHdQTw-Zzp4xvi+7zi-OgLdbPVkh0fkKYizTUTwpkfsnAyw at mail dot gmail dot com>
> From: Jonathan Wakely [jwakely.gcc@gmail.com]
>Sent: 12 August 2015 17:41
>On 12 August 2015 at 16:20, Dijk, J. van wrote:
>> Dear all,
>>
>> Looking into gcc/cp/Changelog, it appears that on 2015-08-06 support
>> for the C++ Concepts TS was added to trunk.
>>
>> Have Concepts in gcc matured to the point that end-users can
>> start to explore and test them? If so, the page https://gcc.gnu.org/projects/cxx1y.html
>> needs an update, since it mentions the c++1z Concepts
>> Lite *branch* at the end of the document.
>
>Yes, the branch is not in use any longer, all support is on the trunk.
>
>> There is also no explanation how to enable experimental
>> c++1z features that I can see on that page (like there is for
>> c++14 at the top of the page). I suppose a new section on
>> 'C++1z language features' is due?
>
> Well it should be a separate page really, since that page is about
> C++14 not C++17.
>
> To enable the features just use the appropriate -std option, as
> documented in the manual:
> https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
Dear Jonathan,
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.)
Regards, Jan.
diff -urN --exclude 'Entries*' wwwdocs-orig/htdocs/gcc-6/changes.html wwwdocs/htdocs/gcc-6/changes.html
--- wwwdocs-orig/htdocs/gcc-6/changes.html 2015-08-13 00:25:44.009826451 +0200
+++ wwwdocs/htdocs/gcc-6/changes.html 2015-08-13 00:15:36.507550280 +0200
@@ -68,6 +68,8 @@
<h3 id="cxx">C++</h3>
<ul>
<li>The default mode has been changed to <code>-std=gnu++14</code>.</li>
+ <li> C++ concepts <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf">
+ (N4377)</a> are now supported when c++1z code generation is requested.</li>
</ul>
<h3 id="fortran">Fortran</h3>
diff -urN --exclude 'Entries*' wwwdocs-orig/htdocs/projects/cxx1y.html wwwdocs/htdocs/projects/cxx1y.html
--- wwwdocs-orig/htdocs/projects/cxx1y.html 2015-08-13 00:25:44.010826466 +0200
+++ wwwdocs/htdocs/projects/cxx1y.html 2015-08-13 00:07:54.726496707 +0200
@@ -174,6 +174,13 @@
<a name="concepts"></a><h3>C++1z Concepts Branch</h3>
+<p><strong>Update</strong>: Support for the
+<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf">
+C++ Concepts Technical Specification</a>
+was merged into trunk at 6. August 2015 (revision r226713) and will
+be available in gcc-6. Users of the concepts branch are urged to switch
+to trunk instead.</p>
+
<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
@@ -183,6 +190,7 @@
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>
diff -urN --exclude 'Entries*' wwwdocs-orig/htdocs/projects/cxx1z.html wwwdocs/htdocs/projects/cxx1z.html
--- wwwdocs-orig/htdocs/projects/cxx1z.html 1970-01-01 01:00:00.000000000 +0100
+++ wwwdocs/htdocs/projects/cxx1z.html 2015-08-13 00:09:21.561823268 +0200
@@ -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 upcoming revision of the C++
+ standard, which is expected to be published in 2017. Until we are
+ sure of that, it will be referred to as C++1z.</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>. 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 under development, GCC's support is <strong>experimental</strong>
+ and features may disappear or change in incompatible ways as the standard
+ matures.</p>
+
+<h2>C++1z Language Features</h2>
+
+ <p>The following table lists new language features that are part of
+ the C++1z standard. 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>
+ </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.2014">table</a>
+ </p-->
+
+</body>
+</html>
+