# Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++) ``` Document: ISO/IEC JTC1/SC22/WG21 N4683 Date: 2017-07-17 Period Covered: August 2016 - August 2017 Submitted By: Convener, ISO/IEC JTC1/SC22/WG2l Herb Sutter Microsoft Corporation 1 Microsoft Way Redmond WA 98052 Email: hsutter@microsoft.com Tel: +1-425-707-6533 ``` ## 1. MANAGEMENT SUMMARY ### 1.1. JTC1/SC22/WG21 STATEMENT OF SCOPE Development and maintenance of ISO/IEC Standards, Technical Specifications, and Technical Reports related to the programming language C++. ### 1.2. PROJECT REPORT #### 1.2.1. COMPLETED PROJECTS JTC1.22.14882 - Programming Language C++ - This project was delivered by the publishing of ISO/IEC 14882:1998, :2003, and :2011, and :2014. JTC1.22.18015:2006 Information Technology - Programming Languages Technical Report on C++ Performance (Technical Report Type 3) -- Confirmed in 2013 systematic review JTC1.22.18822:2014: C++ Extensions for File System JTC1.22.19216: C++ Extensions for Networking - PDTS ballot resolution completed in July, to be published in 2017. JTC1.22.19217:2015: C++ Extensions for Concepts JTC1.22.19568:2015: C++ Extensions for Library Fundamentals JTC1.22.19568:2017: C++ Extensions for Library Fundamentals, 2nd edition JTC1.22.19570:2015: C++ Extensions for Parallelism JTC1.22.19571:2015: C++ Extensions for Concurrency JTC1.22.19768:2007 Information Technology - Programming Languages Technical Report of Type 2 on C++ Library Extensions (based on ISO/IEC 14882) -- Confirmed in 2013 systematic review JTC1.22.19841:2015: C++ Extensions for Transactional Memory JTC1.22.21425: C++ Extensions for Ranges - PDTS ballot resolution completed in July, to be published in 2017. JTC1.22.22277: C++ Extensions for Coroutines - PDTS ballot resolution completed in July, to be published in 2017. JTC1.22.24733 Information Technology - Programming Languages Technical Report of Type 2 on Extensions for the programming language C++ to support decimal floating point arithmetic JTC1.22.29124 Programming Language C++ - International Standard on Special Math Functions #### 1.2.2. PROJECTS UNDERWAY See [isocpp.org/std/status](https://isocpp.org/std/status) for a summary of projects underway, including contemplated upcoming ballots. JTC1.22.14882 - Work is now underway on the next revision, which is currently in DIS ballot and targeted for publication in 2017. JTC1.22.19570: C++ Extensions for Parallelism - Work on a revision is in progress. Tentatively targeted for publication in 2018. JTC1.22.21544: C++ Extensions for Modules - Work is in progress to produce a PDTS draft for ballot in 2017. Tentatively targeted for publication in 2018. #### 1.2.3. CANCELLED PROJECTS None this period. #### 1.2.4. COOPERATION and COMPETITION Where appropriate, WG21 has established liaisons with other SC22 and SC22 liaison organizations' working groups. There is no direct competition with any other current SC22 working group. Occasional overlap with SC22/WG14 (C) is coordinated with broad WG21 liaison. ## 2. PERIOD REVIEW ### 2.1. MARKET REQUIREMENTS ISO C++ remains a widely-used foundation technology, well-received in the marketplace. Although C++ has long been a consistently popular language, since 2011 in particular it has enjoyed a renewed cycle of growth and investment in tools and platform support across the industry. This was driven primarily by the C++11 standard's completion at the same time as the industry saw a resurgence of interest in performance-efficient, hardware-efficient, and especially power-efficient systems programming capability for mobile devices, cloud data centers, high-performance financial systems, vector and GPGPU computing (via nonstandard extensions to C++ that we are now investigating standardizing), and other major growth sectors and environments. This new cycle of industry investment in C++ includes, but is not limited to, investment in: 1) tools, such as the advent of a new major C++ implementation in the Clang compiler and other major new products actively competing to fully implement the latest ISO C++ standard; 2) organization, with the establishment of the Standard C++ Foundation trade association in 2012 (see isocpp.org/about); 3) standardization participation, so that meeting attendance is regularly approximately 110 experts organized into 10-15 active subgroups -- this includes domain-specific subgroups (e.g., transactional memory, graphics, gaming) that were established since 2012 and have drawn domain experts who did not previously participate in C++ standardization; and 4) faster and more predictable standardization output, with regular releases of the standard every three years along with many concurrent Technical Specifications (ten completed and published from 2014 to 2017, including the three mentioned above that have completed PDTS comment resolution and will publish this year). ### 2.2. ACHIEVEMENTS Achievements in the past year include the following. JTC1.22.14882 - Programming Language C++ - International Standard is in DIS ballot and is expected to be published in 2017. JTC1.22.19568:2016: C++ Extensions for Library Fundamentals, 2nd edition Two Technical Specifications are in progress (modules and parallelism), and two more are expected to be started in the coming year (concurrency 2nd edition, 2D graphics). Much of the content in these and the published TSes are likely candidates for inclusion in the next planned revision of IS 14882 in 2020. ### 2.3. RESOURCES WG21 has grown considerably over the past two years, which reflects the continued growth and investment in C++ across the industry as noted in 2.1. WG21 meets three times per year in co-located technical sessions with the US committee PL22.16. WG21 regularly has experts from 8-10 national bodies present at meetings, with 20 countries participating in all by attending these meetings or by being involved in the technical discussions that take place over the committee email lists. The countries are: Austria, Bulgaria, Canada, Denmark, Finland, France, Germany, Ireland, Islamic Republic of Iran, Japan, DPR of Korea, Netherlands, Norway, Poland, Russia, Spain, Sweden, Switzerland, United Kingdom, and United States of America. WG21 has been monitoring the cross-language standards activities, and made use of the ISO/IEC JTC1/SC22 guidelines on extended characters. Liaisons: - SC22/WG14 - C - Michael Wong (Codeplay, USA) - Clark Nelson (Intel, USA) - Tom Plum (Plum Hall, USA) ## 3. FOCUS NEXT WORK PERIOD ### 3.1. DELIVERABLES WG21 is working on publishing JTC.22.14882 (IS C++) and progressing several other TS projects as noted in 1.2.2. Several are expected to progress to their next ballot stages, and in some cases to publication, in the next 12 months. ### 3.2. STRATEGIES WG21 members have been meeting in parallel subgroups and coordinating work between meetings via e-mail lists, teleconferences, and wiki. WG21 is working on revisions to the central IS JTC1.22.14882 on a more regular three-year cadence. In addition, WG21 is parallelizing its work products by producing many work items first as Technical Specifications, which enables each independent work item to progress at its own speed and with less friction, and enables more experimental work to progress outside the main standard until it is more mature while still providing a reference for commercial implementations. When ready, these TS's can then be considered adopted (in whole or in part, and with changes) into the ISO C++ standard. As of this writing, WG21 has 14 Study Groups, about half of them active, focusing on incubating proposals in specific areas, and which meet between WG21 face-to-face meetings via telecon and/or their own face-to-face meetings. These domain-specific groups have directly led to increased participation by leading experts in those domains who had not previously participated in WG21. For a current list of Study Groups, see [isocpp.org/std/the-committee](http://isocpp.org/std/the-committee). ### 3.3. RISKS None. ### 3.4. OPPORTUNITIES Nothing new to report. ### 3.5. WORK PROGRAM PRIORITIES WG21 intends to continue working on new language and/or library extensions with a view to publishing multiple TSes and then another new JTC1.22.14882 IS in 2017. ## 4. OTHER ITEMS ### 4.1. POSSIBLE ACTION REQUESTS AT FORTHCOMING PLENARY None. ### 4.2 PROJECT EDITORS The following individuals have been appointed project editors and backups. Currently active projects: - JTC1.22.14882, Programming Language C++: - Richard Smith (editor) - Jonathan Wakely (backup) - Dawn Perchik (backup) - Thomas Köppe (backup) - JTC1.22.19570: Parallelism - Jared Hoberock (editor) - JTC1.22.21544: Modules - Gabriel Dos Reis (editor) Complete projects: - JTC1.22.14882:1998 and :2003, Programming Language C++: - Andrew Koenig (editor) - Tom Plum (backup) - JTC1.22.14882:2011, Programming Language C++: - Pete Becker (editor) - Lawrence Crowl (backup) - Tom Plum (former backup, until 2006) - JTC1.22.14882:2014, Programming Language C++: - Stefanus Du Toit (editor) - Lawrence Crowl (backup) - JTC1.22.18015, Technical Report on C++ Performance - Lois Goldthwaite (editor) - Detlef Vollmann (backup) - Martin O'Riordan (former editor, until 2003) - JTC1.22.18822: File System Library - Beman Dawes (editor) - Stefanus Du Toit (backup) - JTC1.22.19217: Concepts - Andrew Sutton (editor) - JTC1.22.19768, Technical Report on C++ Library Extensions - Matt Austern (editor) - Pete Becker (backup) - JTC1.22.24733, Technical Report on Extensions to Support Decimal Floating Point Arithmetic - Robert Klarer (editor) - Pete Becker (backup) - JTC1.22.29124 Programming Language C++ - Special Math Functions - Walter Brown (editor) - Pete Becker (backup) - JTC1.22.19216: Networking - Jonathan Wakely (editor) - JTC1.22.19568: Library Fundamentals - Geoffrey Romer (editor) - Jeffrey Yasskin (backup) - JTC1.22.19571: Concurrency - Michael Wong (editor) - JTC1.22.21425: Ranges - Casey Carter (editor) Cancelled projects: - JTC1.22.19569: Arrays - Lawrence Crowl (editor) - JTC1.22.24737, Technical Report on C++ Library Extensions - Matt Austern (editor) - Pete Becker (backup) ### 4.3. ELECTRONIC DOCUMENT DISTRIBUTION WG21 has conducted much of its detailed technical discussion using the email lists provided by the Standard C++ Foundation via [isocpp.org](https://isocpp.org). WG21 uses a secure wiki maintained by Edison Design Group. This secure wiki is used for quick exchange of documents during and between meetings. WG21 is now providing all the appropriate committee documents electronically, eliminating the need for paper mailings. ### 4.4. RECENT MEETINGS See [isocpp.org/std/meetings-and-participation/upcoming-meetings](http://isocpp.org/std/meetings-and-participation/upcoming-meetings) for a list of recent and future meetings.