+0.31 C++26: The Oxford Variadic Comma (www.sandordargo.com S:+0.27 )
117 points by ingve 4 days ago | 67 comments on HN | Mild positive Moderate agreement (3 models) Editorial · v3.7 · 2026-03-15 22:22:55 0
Summary Knowledge Access & Intellectual Expression Acknowledges
This technical blog post explaining C++26 language design changes engages with human rights primarily through freedom of expression, information access, and education. The content demonstrates moderate positive engagement with Article 19 (freedom of expression and information) through transparent explanation of technical standards, and with Article 26 (education) by making complex technical concepts accessible. Structural support for global access and reader engagement mechanisms reinforce these rights, though privacy considerations around analytics tracking introduce minor negative signals.
Rights Tensions 1 pair
Art 12 Art 19 Analytics tracking (Article 12 privacy) collects reader data without explicit visible consent, potentially limiting privacy autonomy, while the article itself champions transparent information sharing (Article 19).
Article Heatmap
Preamble: ND — Preamble Preamble: No Data — Preamble P Article 1: ND — Freedom, Equality, Brotherhood Article 1: No Data — Freedom, Equality, Brotherhood 1 Article 2: ND — Non-Discrimination Article 2: No Data — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.14 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: ND — Work & Equal Pay Article 23: No Data — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: ND — Standard of Living Article 25: No Data — Standard of Living 25 Article 26: ND — Education Article 26: No Data — Education 26 Article 27: ND — Cultural Participation Article 27: No Data — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
E
+0.31
S
+0.27
Weighted Mean +0.14 Unweighted Mean +0.14
Max +0.14 Article 19 Min +0.14 Article 19
Signal 1 No Data 30
Volatility 0.00 (Low)
Negative 0 Channels E: 0.6 S: 0.4
SETL +0.09 Editorial-dominant
FW Ratio 56% 25 facts · 20 inferences
Agreement Moderate 3 models · spread ±0.110
Evidence 15% coverage
1H 5M 3L 22 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.00 (0 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.00 (0 articles) Expression: 0.14 (1 articles) Economic & Social: 0.00 (0 articles) Cultural: 0.00 (0 articles) Order & Duties: 0.00 (0 articles)
HN Discussion 11 top-level · 19 replies
mFixman 2026-03-15 18:22 UTC link
I used to slay with this in code golfing competitions from TopCoder, where you had to implement a function to solve a particular problem, thanks to C pointer maths and the gcc generally putting function arguments in order in the stack.

Turns out, these two are equivalent in practice (but UB in the C++ standard):

    double solve(double a, double b, double c, double d) {
      return a + b + c + d;
    }

    double solve(double a ...) {
      return a + 1[&a] + 2[&a] + 3[&a];
    }
advael 2026-03-15 18:22 UTC link
This seems pretty good to me just on the level of trying to read C as someone using C++. Parameter packs and variadic templates are easily the most confusing syntax in C++ and cleaning it up is... very welcome
lasgawe 2026-03-15 18:29 UTC link
learned something new. thanks for the article.
throwaway2027 2026-03-15 18:34 UTC link
C++ got too complicated after C++23 I went back to C.
staplung 2026-03-15 18:43 UTC link
Of course since the old syntax is merely deprecated and not removed, going forward you now have to know the old, bad form and the new, good form in order to read code. Backwards compatibility is a strength but also a one-way complexity ratchet.

At least they managed to kill `auto_ptr`.

zlfn 2026-03-15 18:46 UTC link
C++ seems to be constantly getting complicated. If the major version were to change, there wouldn't be any need for backward compatibility with the existing code, and it would have been okay to delete that syntax while creating an automatic formatter.
HackerThemAll 2026-03-15 19:07 UTC link
Yes, but no. I learned C++ in '90s when it was C with classes and some other noise added by Stroustrup. During the some 25 years that followed it had became a mess that's insanely hard to work with. I'm not going back to this language. I prefer plain C or Rust, leaning towards Rust when I fully comprehend the lifetime and borrow checker. Or when I have the luxury of having a GCed runtime, then the .NET with its easiest C# language with wonderful abundance of great libraries is the best choice. Nobody was ever fired for using .NET (for right purposes).
blueaquilae 2026-03-15 19:59 UTC link
I'm far from C++ but reading this article confused be, from the form to the impact to the dead link https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p12...

I guess that's a preview how C++ require a lifelong commitment.

rusakov-field 2026-03-15 20:21 UTC link
Clarity and Elegance of Syntax > Backwards compatibility.

In my opinion anyway. C++ feels so bloated these days.

flqn 2026-03-15 23:49 UTC link
This is a good change. Potentially ambiguous to read syntax is being made clearer in a way that harms no previous code substantially.

I sometimes wonder if the comments that say nothing more than "C++ is too complicated" are from people who use it regularly, much less people who are even commenting on TFA

paulmooreparks 2026-03-16 00:22 UTC link
Note to the author of TFA: The moment I get a sign-up modal on any site, I close the tab and move on.
camel-cdr 2026-03-15 18:33 UTC link
K&R syntax is -1 char, if you are in C:

    double solve(double a,double b,double c,double d){return a+b+c+d;}
    double solve(double a...){return a+1[&a]+2[&a]+3[&a];}
    double solve(a,b,c,d)double a,c,b,d;{return a+b+c+d;}
jkaplowitz 2026-03-15 18:33 UTC link
Hats off for using "..." in your comment immediately after a valid identifier word and with no comma in between, given the topic of the article.
dnmc 2026-03-15 18:48 UTC link
Are you suggesting we move to C++++?
Conscat 2026-03-15 19:08 UTC link
No offense intended to your perspective, but I do find it a little amusing that C++23, which was generally considered a disappointingly small update due to COVID complications, was the breaking point in complexity.
FartyMcFarter 2026-03-15 19:09 UTC link
You can always restrict yourself to a subset of C++ that takes advantage of RAII (resource handling is extremely painful in C), and get performance benefits like move semantics, without the insanely complex stuff.

I love C, but C++ has worthwhile advantages even if you heavily restrict which features you use.

mananaysiempre 2026-03-15 19:10 UTC link
> Turns out, these two are equivalent in practice

Not in the x86-64 SysV ABI they aren’t. The arguments will be passed in registers (yes, even the variadic ones), so how your compiler will interpret 1[&a] is anybody’s guess. (For me, x86_64-unknown-linux-gnu-g++ -O2 yields, essentially, return a+a+a+a; which is certainly an interpretation. I’m also getting strange results from i686-unknown-linux-gnu-g++ -O2, but my x87 assembly is rusty enough that I don’t really get what’s going on there.)

jjgreen 2026-03-15 19:25 UTC link
C is the new vinyl.
Joker_vD 2026-03-15 20:08 UTC link

    double solve(double a[]) {
      return 0[a] + 1[a] + 2[a] + 3[a];
    }

    solve((double[]){1, 2, 3, 4});
The cast in the invocation can be macro-ed away. And the best thing is, the actual stack layout and data movement/shuffling is pretty much identical to the approach with <stdargs.h>, and with no UB or compiler intrinsics.
hrmtst93837 2026-03-15 20:30 UTC link
If two template spellings trip you up, C++ is not your biggest problem. The joke is that each 'cleanup' sands off a tiny rough edge while the commitee leaves the old strata in place, so the language keeps accreting aliases and exceptions instead of dropping dead weight.
tialaramex 2026-03-15 21:01 UTC link
That should probably link https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p12...

The difference being that P1219R2 was actually a revised proposal from 2019 not 2021.

vlovich123 2026-03-15 21:06 UTC link
I think Rust has shown a way to remove deprecated interfaces while retaining back compat - automated tooling to migrate to the next version and give a few versions for a deprecated interfaces to stick around at the source level.
Karliss 2026-03-15 21:14 UTC link
I doubt it will be a problem in practice.

Regular variadic arguments in general aren't used very often in C++ with exception of printf like functions. Not rare enough for majority of C++ programmers to not know about them, but definitely much more rare than their use in python. Main reason people know about it at all is printf. The "new" C compatible form has been supported since the first ISO standardized version of c++ if not longer. There haven't been a good reason to use the "old" form for a very long time. Which means that the amount of C++ code using deprecated form is very low.

Being deprecated means that most compilers and linters will likely add a warning/code fix suggestion. So any maintained project which was accidentally using C incompatible form will quickly fix it. No good reason not to.

As for the projects which for some reason are targeting ancient pre ISO standard c++ version they wouldn't have upgraded to newer standard anyway. So if new standard removed old form completely it wouldn't have helped with those projects.

So no you don't need to know the old form to read C++ code. And in the very unlikely case you encounter it, the way for accessing variadic arguments is the same for both forms through special va_list/va_arg calls. So if you only know the "new" form you should have a pretty good idea of whats going on there. You might lookup in references what's the deal with missing coma, but other than that it shouldn't be a major problem for reading code. This is hardly going to be the biggest obstacle when dealing with code bases that old.

PaulDavisThe1st 2026-03-15 21:17 UTC link
>If the major version were to change, there wouldn't be any need for backward compatibility with the existing code,

I have no idea where you get this idea from. I expect gcc v28 to be able to compile C++ from 2008, and I'm not alone in that.

PaulDavisThe1st 2026-03-15 21:22 UTC link
Tiring how often this needs to be said, but if you want "C with classes", you can just use C++ that way.

I've been using C++ for more than 30 years (I added thread_local to Cfront back in the early 90s), and while the language has grown dramatically in that time, there is fundamentally nothing that would prevent me from writing "C with classes" using the modern version.

I don't do that because I also like RAII, and polymorphism, and operator overloading and ...

I've never used .NET and could not imagine any scenario under which I would. The libraries that matter to me are mostly written in C or C++ and there are more of them than I'd ever need, mostly.

recursivecaveat 2026-03-15 22:52 UTC link
I mean this is extremely minor, but the more incompatibility you create the slower the uptake will be. In the extreme you could create a Python 2->3 situation over old syntax.
layer8 2026-03-15 22:54 UTC link
The “new” form has been valid since the original 1998 C++ standard, where it was added for compatibility with C. “You now have to know” has therefore already been the case for the past 27 years. Back then the old pre-standard form was kept for backwards compatibility, and is only now being deprecated.
maccard 2026-03-15 23:05 UTC link
>turns out these two are equivalent in practice

Err no; https://gcc.godbolt.org/z/sW3ea58oc

They're equivalent on GCC.

saghm 2026-03-16 00:10 UTC link
I don't fully understand the connection between your two paragraphs. It's not inconsistent for the language to be too complicated for it to be a good change.

I'm also not totally convinced that someone not using a language regularly means their view on it being too complicated must be invalid; I would fully expect someone who views it as too complicated to try to avoid using it, and there are enough people doing that, it might be a cause for concern. That doesn't necessarily mean they're right, but without further context it also doesn't mean their opinion isn't relevant.

jandrewrogers 2026-03-16 01:49 UTC link
The old-style variadics are rarely seen in C++ these days, never mind this particular edge case. If you working in a vaguely modern version of C++ this largely won’t impact you. You can almost certainly ignore this and you’ll be fine.

Unless you have a massive legacy code base that is never updated, C++ has become much simpler over time. At a lot companies we made a point of slowly re-factoring old code to a more recent C++ standard (often a couple versions behind the bleeding edge) and it always made the code base smaller, safer, and more maintainable. It wasn’t much work to do this either.

To some extent with C++, complexity is a choice.

Editorial Channel
What the content says
+0.10
Article 19 Freedom of Expression
Medium Framing Practice
Editorial
+0.10
SETL
-0.14

Content disseminates technical information freely; no editorial restrictions on expression. Blog format enables author to communicate ideas directly to readers.

ND
Preamble Preamble

No observable content addressing foundational human dignity, equality, or freedom principles.

ND
Article 1 Freedom, Equality, Brotherhood

Content does not engage with equal rights or dignity concepts.

ND
Article 2 Non-Discrimination

No discussion of non-discrimination or enumerated protected statuses.

ND
Article 3 Life, Liberty, Security

Content does not address life, liberty, or personal security.

ND
Article 4 No Slavery

No content regarding slavery or servitude.

ND
Article 5 No Torture

No discussion of torture or cruel treatment.

ND
Article 6 Legal Personhood

No content addressing legal personality or right to recognition.

ND
Article 7 Equality Before Law

No discussion of equal protection before law.

ND
Article 8 Right to Remedy

No content addressing access to justice or remedies.

ND
Article 9 No Arbitrary Detention

No discussion of arbitrary arrest or detention.

ND
Article 10 Fair Hearing

No content addressing fair trial or judicial process.

ND
Article 11 Presumption of Innocence

No content on criminal liability or retroactive law.

ND
Article 12 Privacy

No content addressing privacy invasion.

ND
Article 13 Freedom of Movement

No discussion of freedom of movement.

ND
Article 14 Asylum

No content addressing asylum or refugees.

ND
Article 15 Nationality

No discussion of nationality or citizenship.

ND
Article 16 Marriage & Family

No content on marriage or family rights.

ND
Article 17 Property

No discussion of property rights or deprivation.

ND
Article 18 Freedom of Thought

No content addressing freedom of conscience or religion.

ND
Article 20 Assembly & Association

No content on freedom of association or assembly.

ND
Article 21 Political Participation

No discussion of political participation or voting.

ND
Article 22 Social Security

No content on social security or welfare.

ND
Article 23 Work & Equal Pay

No discussion of labor rights, employment, or fair wages.

ND
Article 24 Rest & Leisure

No content addressing rest, leisure, or working hours.

ND
Article 25 Standard of Living

No content on health, food, housing, or medical care.

ND
Article 26 Education

No discussion of education or learning.

ND
Article 27 Cultural Participation

No content on cultural participation or intellectual property.

ND
Article 28 Social & International Order

No content addressing social order or conditions for rights.

ND
Article 29 Duties to Community

No discussion of duties or responsibilities.

ND
Article 30 No Destruction of Rights

No content authorizing denial or limitation of rights.

Structural Channel
What the site does
Element Modifier Affects Note
Legal & Terms
Privacy
No privacy policy or tracking disclosure visible on URL; Google Analytics present but consent mechanism not evident in provided content.
Terms of Service
No terms of service provided in content sample.
Identity & Mission
Mission
Blog focused on C++ and software development; no explicit human rights mission statement evident.
Editorial Code
No editorial standards or code of conduct visible on URL.
Ownership
Author identified as Sandor Dargo; no corporate ownership or sponsorship disclosed.
Access & Distribution
Access Model
Content appears free and publicly accessible; no paywall or registration barrier observed.
Ad/Tracking
Google Analytics tracking code present (UA-89625019-1); no advertising visible in content excerpt.
Accessibility
Dark mode toggle present; semantic HTML structure observable. Full accessibility audit not possible from excerpt.
+0.20
Article 19 Freedom of Expression
Medium Framing Practice
Structural
+0.20
Context Modifier
0.00
SETL
-0.14

Content publicly accessible without paywall, registration, or editorial gatekeeping. Author maintains platform for unfiltered technical expression.

ND
Preamble Preamble

No structural features implementing dignity or equality frameworks.

ND
Article 1 Freedom, Equality, Brotherhood

No structural provisions ensuring equal treatment or dignity.

ND
Article 2 Non-Discrimination

No observable discrimination or exclusion in access model.

ND
Article 3 Life, Liberty, Security

No structural safety or security provisions observable.

ND
Article 4 No Slavery

No structural exploitation or forced labor mechanisms.

ND
Article 5 No Torture

No structural provisions permitting abuse.

ND
Article 6 Legal Personhood

No structural implications for legal status.

ND
Article 7 Equality Before Law

No structural legal discrimination observed.

ND
Article 8 Right to Remedy

No structural provisions for legal remedy.

ND
Article 9 No Arbitrary Detention

No structural detention mechanisms.

ND
Article 10 Fair Hearing

No structural judicial provisions.

ND
Article 11 Presumption of Innocence

No structural criminal enforcement.

ND
Article 12 Privacy

Google Analytics tracking present without explicit consent mechanism disclosed; structural privacy risk not entirely mitigated.

ND
Article 13 Freedom of Movement

No structural restrictions on movement.

ND
Article 14 Asylum

No structural provisions for asylum.

ND
Article 15 Nationality

No structural nationality provisions.

ND
Article 16 Marriage & Family

No structural family law provisions.

ND
Article 17 Property

No structural property implications.

ND
Article 18 Freedom of Thought

No structural religious restrictions.

ND
Article 20 Assembly & Association

No structural provisions for assembly.

ND
Article 21 Political Participation

No structural political mechanisms.

ND
Article 22 Social Security

No structural social security provisions.

ND
Article 23 Work & Equal Pay

No structural labor provisions.

ND
Article 24 Rest & Leisure

No structural provisions for rest.

ND
Article 25 Standard of Living

No structural health or welfare provisions.

ND
Article 26 Education

Educational content provided freely; no barriers to technical learning observed.

ND
Article 27 Cultural Participation

No structural IP or cultural restrictions.

ND
Article 28 Social & International Order

No structural claims on social order.

ND
Article 29 Duties to Community

No structural duty provisions.

ND
Article 30 No Destruction of Rights

No structural right-limiting provisions.

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.76 medium claims
Sources
0.8
Evidence
0.8
Uncertainty
0.7
Purpose
0.8
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
measured
Valence
+0.3
Arousal
0.4
Dominance
0.5
Transparency
Does the content identify its author and disclose interests?
0.50
✓ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.64 solution oriented
Reader Agency
0.6
Stakeholder Voice
Whose perspectives are represented in this content?
0.40 2 perspectives
Speaks: institution
About: individualscommunity
Temporal Framing
Is this content looking backward, at the present, or forward?
prospective short term
Geographic Scope
What geographic area does this content cover?
global
Complexity
How accessible is this content to a general audience?
technical high jargon domain specific
Longitudinal 192 HN snapshots · 16 evals
+1 0 −1 HN
Audit Trail 36 entries
2026-03-16 00:06 eval_success PSQ evaluated: g-PSQ=0.280 (3 dims) - -
2026-03-16 00:06 eval Evaluated by llama-3.3-70b-wai-psq: +0.28 (Mild positive)
2026-03-16 00:03 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-16 00:03 eval Evaluated by llama-3.3-70b-wai: -0.08 (Neutral)
reasoning
Technical C++ content, no rights discussion
2026-03-16 00:03 rater_validation_warn Lite validation warnings for model llama-3.3-70b-wai: 1W 0R - -
2026-03-15 23:40 eval_success PSQ evaluated: g-PSQ=0.440 (3 dims) - -
2026-03-15 23:40 eval Evaluated by llama-4-scout-wai-psq: +0.44 (Moderate positive) 0.00
2026-03-15 23:05 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-15 23:05 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-15 23:05 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on C++26, no human rights discussion
2026-03-15 22:27 eval_success Evaluated: Mild positive (0.14) - -
2026-03-15 22:27 eval Evaluated by claude-haiku-4-5-20251001: +0.14 (Mild positive) 11,928 tokens -0.18
2026-03-15 22:22 eval_success Evaluated: Moderate positive (0.32) - -
2026-03-15 22:22 eval Evaluated by claude-haiku-4-5-20251001: +0.32 (Moderate positive) 13,257 tokens
2026-03-15 21:26 eval_success PSQ evaluated: g-PSQ=0.440 (3 dims) - -
2026-03-15 21:26 eval Evaluated by llama-4-scout-wai-psq: +0.44 (Moderate positive) 0.00
2026-03-15 21:18 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-15 21:18 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on C++26, no human rights discussion
2026-03-15 21:18 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-15 20:46 eval_success PSQ evaluated: g-PSQ=0.440 (3 dims) - -
2026-03-15 20:46 eval Evaluated by llama-4-scout-wai-psq: +0.44 (Moderate positive) 0.00
2026-03-15 20:38 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-15 20:38 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on C++26, no human rights discussion
2026-03-15 20:38 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-15 20:10 eval_success PSQ evaluated: g-PSQ=0.440 (3 dims) - -
2026-03-15 20:10 eval Evaluated by llama-4-scout-wai-psq: +0.44 (Moderate positive) 0.00
2026-03-15 20:04 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-15 20:04 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on C++26, no human rights discussion
2026-03-15 20:04 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-15 19:33 eval_success PSQ evaluated: g-PSQ=0.440 (3 dims) - -
2026-03-15 19:33 eval Evaluated by llama-4-scout-wai-psq: +0.44 (Moderate positive) 0.00
2026-03-15 19:29 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-15 19:29 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on C++26, no human rights discussion
2026-03-15 19:29 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-15 18:56 eval Evaluated by llama-4-scout-wai-psq: +0.44 (Moderate positive)
2026-03-15 18:54 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral)
reasoning
Technical blog post on C++26, no human rights discussion