~/talk

Regular Types: From Stepanov to C++ Concepts

Talkat ACCU 2024 · 2024-04-17..04-20· [c-and-cpp]
slides:none on file

Argues that Stepanov’s notion of regular types matters now because C++20 Concepts and the three-way comparison automate boilerplate but expose equality pitfalls; shows a real performance bug (defaulted equality does member-wise compare without a size short‑circuit) and explains why std::string_view’s shallow assignment but deep comparison and span’s lack of equality break value semantics. Recommends explicitly defining or suppressing copy/equality, using clang-tidy checks for lifetime issues, and treating non‑owning handles as semi-regular by design.

AI-written summary · about

  1. 0:00Introduction
  2. 1:16Regular types matter
  3. 3:45Stepanov to modern C++
  4. 7:03Mathematical roots
  5. 10:00Value objects semantics
  6. 14:17Fundamentals for developers
  7. 16:04Stepanov’s paper principles
  8. 20:27Value semantics and STL
  9. 23:18C++ Concepts constraints
  10. 24:46C++ Concepts explained
  11. 27:13Sorting comparison needs
  12. 28:39Partial ordering relations
  13. 31:08Equivalence axioms
  14. 32:56Equality and Concepts
  15. 37:34STL equality assumptions
  16. 38:59Regular vs semi-regular
  17. 40:24Defining equality challenges
  18. 42:34Three-way comparison
  19. 45:05Default equality pitfalls
  20. 47:42Equality in Rust Swift
  21. 50:13String view inconsistencies
  22. 53:48Span reference semantics
  23. 55:58Designing regular values
  24. 1:00:13Span non-regular trade-offs
  25. 1:03:39Regular type best practices
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.