March 15, 2026
Six dots, zero chill
C++26: The Oxford Variadic Comma
Comma drama: C++ adds a comma before the dot‑dot‑dot — cheers, groans, and memes
TLDR: C++26 is deprecating the comma‑less “dot‑dot‑dot” in function parameters to reduce confusion and align with C, while keeping old code working. Comments split between “finally, readability!” and “another rule to remember,” with some jokey grief over six dots and a few devs vowing to stick with C.
C++ just picked a side in the grammar wars, and the Internet has opinions. The language is deprecating functions that use dot‑dot‑dot without a comma (think “int…”) and nudging everyone to write “int, …” instead. The goal? Make C++ match C, stop confusing readers with look‑alike template syntax, and kill off the bizarre six‑dots party trick. It’s only a deprecation—old code still works—and tools can auto‑add the comma. Still, the vibes were loud.
Team Readability rolled in first. “Parameter packs and variadic templates are easily the most confusing syntax in C++ and cleaning it up is… very welcome,” cheered advael, speaking for every dev who’s squinted at dot soup. Meanwhile, code‑golfers like mFixman confessed they used the old trick for competitive shenanigans—cue the “dark arts” memes. On the flip side, the mood turned salty: throwaway2027 declared, “C++ got too complicated… I went back to C,” while staplung sighed that deprecation means knowing both the old and new forms—“a one‑way complexity ratchet.”
Memes flew fast: the Oxford comma got crowned “grammar teacher for code,” and “six dots” was dubbed “Morse code for help.” Bottom line: this tiny tweak sparked big feelings. Clarity fans are clapping, complexity critics are groaning, and everyone else is learning a new punctuation rule (proposal P3176R1).
Key Points
- •C++26 deprecates ellipsis (C-style variadic) parameters without a preceding comma, per proposal P3176R1.
- •The change aligns C++ with C (since C89), which requires the comma-separated form (e.g., int, ...).
- •Confusion with template parameter packs and abbreviated templates (e.g., auto... args vs auto args...) motivates the deprecation.
- •Deprecated forms include int..., auto args..., and T... where T is not a pack; preferred forms insert a comma before ....
- •This is a pure deprecation: existing code remains valid; fixes are mechanical and can be automated, and it clears syntax for future proposals like P1219R2.