The Committee: WG21
The ISO C++ committee is called WG21, officially ISO/IEC JTC1 (Joint Technical Committee 1) / SC22 (Subcommittee 22) / WG21 (Working Group 21). WG21 was formed in 1990-91, and consists of accredited delegations from member nations of ISO/IEC JTC1/SC22 who are interested in C++ work. Typically 8-10 national body delegations attend each meeting. Recently attending nations include Canada, Finland, France, Netherlands, Spain, Switzerland, United Kingdom, and United States.
The WG21 officers are:
- Convener: Herb Sutter (Microsoft). The convener chairs the WG, sets the WG meeting schedule ("convenes" meetings), appoints Study Groups, and is responsible to higher levels of ISO (SC22, JTC1, and ITTF) for the WG's work.
- Project Editor: Stefanus Du Toit. The project editor is the person ultimately responsible for applying committee-approved changes to the standard's working draft.
- Secretary: Kyle Kloepper (Riverbed). The secretary is responsible for taking and distributing minutes of WG21 meetings.
Recent national body heads of delegation include:
- Canada: Michael Wong
- Finland: Ville Voutilainen
- Germany: Peter Gottschling
- Netherlands: JC van Winkel
- Spain: J. Daniel Garcia
- Switzerland: Detlef Vollmann
- United Kingdom: Roger Orr
- United States: Barry Hedquist
Because many regular participants are based in the United States, the U.S. national C++ committee (originally called J16, officially ANSI X3J16; now called .16, officially INCITS PL22.16) arranges its schedule to meet jointly in the same room with WG21. The .16 officers are:
- Chair: Steve Clamage (Oracle). The chair runs .16 meetings, organizes the operation of the U.S. committee, and is responsible to the U.S. national body for the committee's work.
- Vice-Chair: Clark Nelson (Intel). The vice-chair assists the chair, including by maintaining the document register.
- Secretary: Kyle Kloepper (Riverbed). The secretary is responsible for taking and distributing minutes of .16 meetings. (Not coincidentally, we use a U.S. member to serve as secretary for both WG21 and .16 since the minutes have a large overlap.)
- International Representative (IR): Barry Hedquist (Perennial). The IR is responsible for communication between the U.S. and international committees, and is usually head of delegation for U.S. at WG21 meetings.
When we talk about "the committee" we typically mean the joint membership of the ISO and U.S. national committees because the two meet together.
Subgroups and Study Groups
The committee is organized into several subgroups, each run by the indicated chairperson. Note "SG" stands for "Study Group."
There are four “central” working groups: Evolution (EWG) and Core (CWG) respectively own the design and specification of language features, and Library Evolution (LEWG) and Library (LWG) respectively own the design and specification of the standard library.
- Core, aka CWG: Mike Miller (EDG). The core language working group is responsible for the core language features, focusing on clauses 1 to 16 of the standard. This group focuses on maintaining the current language, as well as fine-tuning new extensions brought forward from EWG, below.
- Evolution, aka EWG: Bjarne Stroustrup (Texas A&M University). The evolution working group is responsible for working on new features that involve language extensions, including to delegate work to be done in a subgroup and approve the results (such as concurrency, delegated to SG1, below).
- Library, aka LWG: Alisdair Meredith (Bloomberg). The library working group is responsible for the standard library, focusing on clauses 17 and later of the standard. This group focuses on maintaining the current language, as well as fine-tuning new extensions brought forward from LEWG, below.
- Library Evolution, aka LEWG: Jeffrey Yasskin (Google). The library evolution working group is responsible for working on new library extensions that do not involve core language changes, including to delegate work to be done in a subgroup and approve the results (such as file system, delegated to SG3, below).
Smaller features are designed in EWG and LEWG, but larger or domain-specific work items are often split out into parallel SG's, each focused on a specific domain. Study Groups meet as breakouts during full WG21 face-to-face meetings, and can also meet independently between meetings either face-to-face or by telecon. The work of the SG's is eventually reviewed by (usually two of) the four central groups, which helps to ensure consistency -- for example, library features like networking features have their design reviewed by LEWG and their specification wording reviewed by LWG, and language features like concepts have their design reviewed by EWG and their specification wording reviewed by CWG.
- SG1, Concurrency: Hans Boehm (HP). Concurrency and parallelism topics.
- SG2, Modules: Doug Gregor (Apple). Work on possible refinement or replacement for the header-based build model.
- SG3, File System: Beman Dawes (Boost). Work based on Boost.Filesystem v3.
- SG4, Networking: Kyle Kloepper (Riverbed). Networking related libraries, including sockets and HTTP.
- SG5, Transactional Memory: Michael Wong (IBM). Exploring transactional memory constructs for potential future addition to the C++ language.
- SG6, Numerics: Lawrence Crowl (Google). Numerics topics, including but not limited to fixed point, decimal floating point, and fractions.
- SG7, Reflection: Chandler Carruth (Google). Initially focusing on compile-time reflection capabilities.
SG8, Concepts: Matt Austern (Google). Near-term focus is on a convergence between the
static ifproposals and the parameter-type-constraints subset of concepts.
- SG9, Ranges: Marshall Clow (Qualcomm). How to update the standard library with a range concept rather than naked iterator pairs, including containers and range-based algorithms.
- SG10, Feature Test: Clark Nelson (Intel). Investigation into whether and how to standardize a way for portable code to check whether a particular C++ product implements a feature yet, as we continue to extend the standard.
- SG11, Databases: Bill Seymour (USPS). Database-related library interfaces.
- SG12, Undefined and Unspecified Behavior: Gabriel Dos Reis (Microsoft). A systematic review to catalog cases of undefined and unspecified behavior in the standard and recommend a coherent set of changes to define and/or specify the behavior.
- SG13, Graphics: Herb Sutter (Microsoft). Investigation into possible standardization of a "2D Lite" simple graphics library.