[wwwdocs] Re: C++ Concepts available in trunk?
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. 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 - 1.19 +++ htdocs/gcc-6/changes.html 13 Aug 2015 08:35:44 - @@ -68,8 +68,33 @@ C++ The default mode has been changed to -std=gnu++14. +C++ Concepts are now supported when compiling with +-std=gnu++1z or -std=c++1z. +Runtime Library (libstdc++) + + Experimental support for C++17, including the following + new features: + +std::uncaught_exceptions function (this is also +available for -std=gnu++NN modes); +new member functions try_emplace and +insert_or_assign for unique_key maps; +non-member functions std::size, +std::empty, and std::data for +accessing containers and arrays; +std::shared_mutex; +std::void_t and std::bool_constant +utilities. + + +An experimental implementation of the File System TS. +Experimental support for most features of the second version of the +Library Fundamentals TS. + + + Fortran The MATMUL 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 - 1.23 +++ htdocs/projects/cxx1y.html 13 Aug 2015 08:35:44 - @@ -167,23 +167,9 @@ C++14 Library Features The status of the library implementation can be tracked in this - https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014";>table + https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014";>table. - Development Branches - - C++1z Concepts Branch - -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 http://concepts.axiomatics.org/~ans/";>Concepts Lite, -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 c++-concepts branch. - 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 - +++ htdocs/projects/cxx1z.html 13 Aug 2015 08:35:44 - @@ -0,0 +1,66 @@ + + + C++1z Support in GCC + + /* */ + + + + + C++1z Support in GCC + + GCC has experimental support for the next revision of the C++ + standard, which is expected to be published in 2017. + + C++1z features are available as part of the "mainline" GCC +compiler in the trunk of +GCC's Subversion + repository and in GCC 4.9 and later. To enable C++1z + support, add the command-line parameter -std=c++1z + to your g++ command line. Or, to enable GNU + extensions in addition to C++1z extensions, + add -std=gnu++1z to your g++ command + line. + + Important: Because the final ISO C++1z standard is + still evolving, GCC's support is experimental. No attempt + will be made to maintain backward compatibility with implementations of + C++1y features that do not reflect the final standard. + +C++1z Language Features + + 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). + + + + Language Feature + Proposal + Available in GCC? + SD-6 Feature Test + + + C++ concepts + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf";>N4377 + 6 + __cpp_concepts >= 201507 + + + + C++1z
Re: [wwwdocs] Re: C++ Concepts available in trunk?
Here's the patch for the rest of the C++17 support. On 13 August 2015 at 09:58, Jonathan Wakely 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. 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 - 1.1 +++ htdocs/projects/cxx1z.html 13 Aug 2015 09:24:13 - @@ -19,7 +19,7 @@ C++1z features are available as part of the "mainline" GCC compiler in the trunk of GCC's Subversion - repository and in GCC 4.9 and later. To enable C++1z + repository and in GCC 5 and later. To enable C++1z support, add the command-line parameter -std=c++1z to your g++ command line. Or, to enable GNU extensions in addition to C++1z extensions, @@ -48,9 +48,58 @@ SD-6 Feature Test + Removing trigraphs + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html";>N4086 + 5.1 + + + + u8 character literals + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html";>N4267 + 6 + __cpp_unicode_characters >= 201411 + + + Folding expressions + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html";>N4295 + 6 + __cpp_fold_expressions >= 201411 + + + Attributes for namespaces and enumerators + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html";>N4266 + +4.9 (namespaces) 6 (enumerators) + + +__cpp_namespace_attributes >= 201411 +__cpp_enumerator_attributes >= 201411 + + + + Nested namespace definitions + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html";>N4230 + No + __cpp_nested_namespace_definitions >= 201411 + + + Allow constant evaluation for all non-type template arguments + http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html";>N4268 + No + __cpp_nontype_template_args >= 201411 + + + C++ concepts http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf";>N4377 - 6 + 6 __cpp_concepts >= 201507
Re: [wwwdocs] Re: C++ Concepts available in trunk?
And a small correction. On 13 August 2015 at 10:24, Jonathan Wakely wrote: > Here's the patch for the rest of the C++17 support. > > On 13 August 2015 at 09:58, Jonathan Wakely 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. 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 - 1.2 +++ htdocs/projects/cxx1z.html 13 Aug 2015 14:31:40 - @@ -62,7 +62,7 @@ Folding expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html";>N4295 - 6 + No __cpp_fold_expressions >= 201411
Re: [wwwdocs] Re: C++ Concepts available in trunk?
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 - 1.67 +++ cxx0x.html 7 Sep 2015 10:47:28 - @@ -18,14 +18,13 @@ compiler to bring feature-complete C++11 to C++ programmers. C++11 features are available as part of the "mainline" GCC -compiler in the trunk of -GCC's Subversion - repository and in GCC 4.3 and later. To enable C++0x +compiler in the trunk of GCC's repository +and in GCC 4.3 and later. To enable C++0x support, add the command-line parameter -std=c++0x to your g++ command line. Or, to enable GNU - extensions in addition to C++0x extensions, - add -std=gnu++0x to your g++ command - line. GCC 4.7 and later support -std=c++11 and +extensions in addition to C++0x extensions, +add -std=gnu++0x. + GCC 4.7 and later support -std=c++11 and -std=gnu++11 as well. Important: 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 - 1.24 +++ cxx1y.html 7 Sep 2015 10:47:28 - @@ -17,14 +17,12 @@ standard, which was published in 2014. C++14 features are available as part of the "mainline" GCC -compiler in the trunk of -GCC's Subversion - repository and in GCC 4.8 and later. To enable C++14 +compiler in the trunk of GCC's repository +and in GCC 4.8 and later. To enable C++14 support, add the command-line parameter -std=c++14 to your g++ command line. Or, to enable GNU - extensions in addition to C++14 extensions, - add -std=gnu++14 to your g++ command - line. +extensions in addition to C++14 extensions, +add -std=gnu++14. Important: Because the final ISO C++14 standard was only recently published, GCC's support is experimental. 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 - 1.3 +++ cxx1z.html 7 Sep 2015 10:47:28 - @@ -17,14 +17,12 @@ standard, which is expected to be published in 2017. C++1z features are available as part of the "mainline" GCC -compiler in the trunk of -GCC's Subversion - repository and in GCC 5 and later. To enable C++1z +compiler in the trunk of GCC's repository +and in GCC 5 and later. To enable C++1z support, add the command-line parameter -std=c++1z to your g++ command line. Or, to enable GNU extensions in addition to C++1z extensions, - add -std=gnu++1z to your g++ command - line. +add -std=gnu++1z. Important: Because the final ISO C++1z standard is still evolving, GCC's support is experimental. No attempt
Re: [wwwdocs] Re: C++ Concepts available in trunk?
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.
Re: [wwwdocs] Re: C++ Concepts available in trunk?
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 - 1.68 +++ cxx0x.html 7 Sep 2015 20:17:10 - @@ -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. - C++11 features are available as part of the "mainline" GCC -compiler in the trunk of GCC's repository + C++11 features are available as part of "mainline" GCC +in the trunk of GCC's repository and in GCC 4.3 and later. To enable C++0x support, add the command-line parameter -std=c++0x to your g++ 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 - 1.25 +++ cxx1y.html 7 Sep 2015 20:17:10 - @@ -16,8 +16,8 @@ GCC has support for the latest revision of the C++ standard, which was published in 2014. - C++14 features are available as part of the "mainline" GCC -compiler in the trunk of GCC's repository + C++14 features are available as part of "mainline" GCC +in the trunk of GCC's repository and in GCC 4.8 and later. To enable C++14 support, add the command-line parameter -std=c++14 to your g++ 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 - 1.4 +++ cxx1z.html 7 Sep 2015 20:17:10 - @@ -16,8 +16,8 @@ GCC has experimental support for the next revision of the C++ standard, which is expected to be published in 2017. - C++1z features are available as part of the "mainline" GCC -compiler in the trunk of GCC's repository + C++1z features are available as part of "mainline" GCC +in the trunk of GCC's repository and in GCC 5 and later. To enable C++1z support, add the command-line parameter -std=c++1z to your g++ command line. Or, to enable GNU