How the ISO C++ Committee (WG21) is Structured

The ISO C++ standards committee, formally designated as ISO/IEC JTC1/SC22/WG21, governs the evolution and standardization of the C++ programming language through a tiered pipeline of specialized subgroups. To process hundreds of technical proposals efficiently while maintaining language stability, WG21 separates responsibilities into domain-specific Study Groups (SGs), high-level Evolution Working Groups (EWG and LEWG), and detail-oriented Specification Working Groups (CWG and LWG). This structured funnel ensures that proposals are rigorously vetted for architectural design, technical feasibility, and legalistic wording before being integrated into the final ISO standard.

The Pipeline Architecture

The committee operates on a conveyor-belt model. Proposals typically advance through three primary stages: domain exploration (Study Groups), design vetting (Evolution Groups), and precise specification drafting (Core and Library Groups), culminating in a formal vote by the entire committee during plenary sessions.

1. Study Groups (Incubation and Domain Focus)

Study Groups (designated as SG followed by a number) serve as domain-specific incubators. They bring together domain specialists to explore complex or emerging areas of computing that may eventually require standard language or library support. Examples include:

  • SG1 (Concurrency and Parallelism): Handles multithreading, memory models, and execution models.
  • SG7 (Compile-Time Programming): Focuses on reflection and metaprogramming.
  • SG15 (Tooling): Addresses ecosystems, package management, and compilation workflows.
  • SG16 (Unicode): Oversees text processing and character encoding requirements.
  • SG21 (Contracts): Specializes in contract-based programming features.

Study Groups analyze problem spaces, evaluate competing technical approaches, and produce high-level consensus proposals before handing them over to the broader evolution groups.

2. Evolution Working Groups (Design Approval)

Once a proposal is sufficiently mature, it enters the evolution tier, which assesses design fitness, usability, and impact on the broader C++ ecosystem. This stage is split between language syntax and standard library components:

  • EWG (Evolution Working Group): Evaluates proposals that change the core C++ syntax, semantics, and language rules. EWG determines whether a feature aligns with the general philosophy of C++, checks for backward compatibility, and refines the feature's high-level user interface.
  • LEWG (Library Evolution Working Group): Evaluates proposals intended for the C++ Standard Library. LEWG scrutinizes API designs, interface ergonomics, naming conventions, and performance implications to ensure consistency across the <algorithm>, <ranges>, and other standard library headers.

Proposals cannot proceed to final wording until EWG or LEWG officially approves their design and forwards them down the pipeline.

3. Specification Groups (Wording and Standardese)

After a design receives approval from the evolution tier, it reaches the final review stage. The specification groups do not invent or alter high-level designs; instead, they translate approved designs into precise, unambiguous ISO standardese:

  • CWG (Core Working Group): Drafts and refines the formal specification for core language mechanics. CWG focuses on internal consistency, interaction with existing language clauses, object lifetime semantics, and parsing ambiguities. CWG also investigates Core Defect Reports (DRs) filed against past standards.
  • LWG (Library Working Group): Drafts and verifies the precise specification for the Standard Library. LWG ensures that specifications include exact requirements, preconditions, postconditions, complexity constraints, and exception safety guarantees for every standard library function and type.

Plenary and Final Approval

Once CWG or LWG approves the exact wording of a paper, the proposal is scheduled for a formal vote before the full WG21 committee during the plenary session. If the voting members approve the motion, the text is merged into the Working Draft of the upcoming C++ standard release. This strict division of labor enables WG21 to maintain a predictable three-year release cycle while ensuring both broad ecosystem feedback and rigorous technical correctness.