Symmetry in Code - Should We Care?
summary
Claims that matter: C++ equality rewriting changes (see P2468R2) actually suppress rewriting when an operator!= suppresses rewriting, which explains a concrete bug demoed: an implicit char conversion causes a pointer comparison instead of value equality. Experimenting by commenting out operator!= makes comparisons behave as expected; adding explicit* surfaces a compiler diagnostic that reveals the rewriting rule. Practical takeaway: audit and avoid accidental implicit conversions and unintended operator overloads, or remove/declare them explicitly so equality semantics are deliberate.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:06Symmetry in nature
- 3:59Symmetry in math
- 8:15Symmetry in code
- 10:26Code complexity
- 14:46Guard patterns
- 17:35Left-leaning code
- 19:01Arithmetic for performance
- 22:17Equality operations
- 22:59C++ strict weak ordering
- 25:04Defining equality
- 31:07Operator overloading pitfalls
- 36:30Symmetry in types
- 42:51Q&A
- 59:17Summary








