How National Bodies Vote on ISO C++ Standards

The evolution of the C++ programming language is governed internationally by ISO/IEC, where official revisions are decided through a structured balloting process managed by National Bodies. This article outlines the hierarchy of ISO/IEC JTC 1/SC 22/WG 21 (the C++ Standards Committee), details how National Bodies organize domestic consensus via mirror committees, and explains the progressive voting stages—from Draft International Standard to final publication—that determine whether a new C++ revision is approved.

The Institutional Hierarchy

C++ is standardized under the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). The technical work is assigned to:

  • ISO/IEC JTC 1: Joint Technical Committee 1 (Information Technology).
  • SC 22: Subcommittee 22 (Programming languages, their environments, and system software interfaces).
  • WG 21: Working Group 21, commonly known as the C++ Standards Committee.

While WG 21 technical experts author, debate, and refine the core wording, only recognized National Bodies (NBs)—the national standards organizations representing individual countries (such as ANSI for the United States, BSI for the United Kingdom, or DIN for Germany)—hold official voting power on the standard’s adoption.

Domestic Consensus via National Mirror Committees

Before an international vote takes place, each participating country establishes a national "mirror committee" composed of domestic industry experts, academics, and corporate representatives.

  1. Review: The mirror committee reviews drafts produced by WG 21.
  2. Deliberation: Members debate language features, library additions, and wording changes.
  3. Consensus: The mirror committee votes internally to establish their country's official position.

The National Body then submits this unified stance as a single vote, accompanied by formal technical or editorial comments.

Membership Categories

National Bodies participate in ISO committees under one of two designations:

  • P-Members (Participating): Countries that actively participate in the work and have an obligation to vote on all formal ballots submitted within the committee.
  • O-Members (Observer): Countries that follow the work as observers and receive documents, but generally do not have voting rights on technical committee ballots, though they may comment.

The Formal Balloting Stages

Revisions to C++ generally advance through a multi-year cycle governed by specific balloting milestones:

1. Committee Draft (CD)

Once WG 21 finishes gathering features for a release, the draft standard is sent out for a Committee Draft ballot. National Bodies register approval or disapproval along with substantive lists of technical comments. This stage tests the overall viability of the language changes and identifies major areas of contention.

2. Draft International Standard (DIS)

After resolving the CD comments, the revised text is submitted to ISO as a Draft International Standard. This is a critical formal ballot conducted across all National Bodies within the parent subcommittee.

  • National Bodies vote: Approve, Approve with comments, Disapprove (which requires explicit technical justification), or Abstain.
  • To pass, a DIS ballot generally requires:
    • Approval by a two-thirds majority of the P-members voting.
    • No more than one-quarter of the total number of votes cast being negative.

3. Ballot Resolution

If a National Body votes "Disapprove," it must provide the specific technical changes that would convert its vote to "Approve." WG 21 convenes a Ballot Resolution Meeting to address each comment individually. If the requested changes are accepted, the National Body may formally withdraw its negative vote.

4. Final Draft International Standard (FDIS)

If substantial technical changes resulted from the DIS ballot, or as required by ISO directives, an FDIS ballot is conducted. At this stage:

  • The ballot is strictly an Approve or Disapprove vote.
  • No technical changes are permitted; only minor typographical or purely editorial corrections are accepted.
  • The same voting thresholds (two-thirds P-member approval, under 25% negative) apply.

Publication

Once the FDIS ballot achieves the required approval thresholds, technical work is concluded. ISO Central Secretariat finalizes formatting, and the document is officially published as a revised ISO/IEC 14882 standard, delivering the next formal generation of C++.