1 of 20

What Belongs in the C++ Standard Library?

What Belongs in the C++ Standard Library?

The question, the terms, and the evidence.

The question, the terms, and the evidence.

2026

2 of 20

THE QUESTION

Every proposal asks the same thing

Should this component be added to the C++ standard library?

Every paper. Every meeting. The same question.

This talk is about how to answer it.

2 / 20

3 of 20

THE ANSWER

The default is no

The burden of overwhelming proof sits on the proposer.

Not hostility. Arithmetic.

The rest of this talk is the arithmetic.

3 / 20

4 of 20

THE SMALLEST FACT

The standard is finite

2,679

Pages in the C++26 working draft. 77 percent of it is library.

C++98 was 732 pages. The library name index has quadrupled since C++11.

Someone writes, reviews, implements, and maintains every page.

N5046, measured 2026-07-08

4 / 20

5 of 20

TERM 1

Complexity Budget

The standard can only carry so much specification. Every addition spends a finite resource.

A budget, not a wishlist.

Every addition is an allocation.�Every addition displaces someone else’s contribution.

5 / 20

6 of 20

TERM 2

Coordination Problem

A concept everybody needs, that every library implements differently.

The only problem standardization actually solves.

std::string solved one. The string type is passed across API boundaries.

6 / 20

7 of 20

TERM 3

The GitHub Test

What does standardization deliver that downloading the library does not?

If the answer is nothing, the answer is no.

Utility is not evidence. A useful library on GitHub is still a useful library.

7 / 20

8 of 20

TERM 4

Reach Test

How many people collect the benefit?

Five people in Bob's basement is not enough.

At least ten million C++ developers exist. What fraction does your component serve?

SlashData, Q3 2023

8 / 20

9 of 20

TERM 5

Standardization Penalty

Your library loses value the moment it enters the standard.

Like driving a new car off the lot.

std::regex: 28 minutes vs 22 seconds

P1433R0 (2019)

9 / 20

10 of 20

TERM 6

Interaction Tax

Every component permanently taxes everything standardized after it.

Each addition makes the next one harder.

A C++23 paper exists solely to let new iterators call old algorithms.

P2408R5 (2022)

10 / 20

11 of 20

TERM 7

Return on Complexity

Value delivered per page of standard spent.

The number that ranks proposals.

Positive is not the bar. Better than every competitor is the bar.

11 / 20

12 of 20

TERM 8

Standardization Dividend

What the community actually collects: benefit times reach, minus every cost.

The bottom line of standardization.

If the dividend is not enormous, the answer stays no.

12 / 20

13 of 20

THE BAR

What a proposal must show

Field reports from years of deployment

A reach census: who collects the benefit

The complexity price, stated honestly

Why you, over everything else on the docket

Design is not evidence.

13 / 20

14 of 20

EXAMPLE 1

std::regex

75x

Slower than the system egrep: 1,655 seconds for what egrep does in 22.

All three vendors: ABI-frozen, unfixable.

Deprecation polled in 2020. The paper never appeared.

It entered field-proven. The standard did the rest.

P1433R0 (2019)

14 / 20

15 of 20

EXAMPLE 2

std::unordered_map

200-300%

A faster, API-compatible unordered_map exists.

It is disallowed by ABI constraints.

The committee's own paper: inefficient forever.

The interface froze in 2003. The state of the art kept moving.

P1863R1, P2028R0 (2020)

15 / 20

16 of 20

EXAMPLE 3

Networking

23 years

Asio: field-proven since 2003. TS published 2018.

Polled out in 2021. Nothing shipped since.

The strongest field record ever offered, and the process still said no.

P2453R0 (2021), P4096R0 (2026)

16 / 20

17 of 20

THE PENALTY

What entry costs your library

API and ABI freeze on arrival

Vendors ship 1 to 6 years late, or never

Defect churn begins immediately

The living library outruns the frozen one

No exit: removal barely exists

Years of your life: hive ran 29 revisions over 8.4 years

Even the best case paid: fmt::print shipped 9.5 years before std::print.

17 / 20

18 of 20

THE ALTERNATIVE

Win users instead

Ship it

Win users

Evolve it for years

Return with field reports

Users make a library stronger. The standard cannot.

string_view, format, and mdspan all did exactly this.

18 / 20

19 of 20

START SMALLER

Standardize the smallest piece

Do you need the whole library in the standard? Maybe you need only the concepts.

Standardize the vocabulary: the concepts

Let others write algorithms against them

Let users prove the design right

Then come back for more

The smallest piece that solves the coordination problem is the strongest proposal.

19 / 20

20 of 20

The default answer is no.

That is what protects the standard - and your library.

2026