What is the basic interface? (part 2 of 2)
summary
Defines an interface model that makes aliasing and address dependence explicit: parameters claim irresponsibly aliased or not, callers can assert aliased X&Y so implementations either use a temporary or prove correctness for both aliasing cases. Distinguishes prologue/epilogue capabilities, computes gross input and gross output, and requires indiscernible differences (addresses, padding) be marked so repeatable calls produce indiscernible results. Shows memmove versus memcpy as examples and gives fixes that actually compile and avoid undefined behavior.
AI-written summary · about
chapters (13)
- 0:00Aliasing and Destructibility
- 1:02Irresponsible Aliasing
- 4:09Defining Responsible Behavior
- 8:20Fixing Interface Problems
- 10:30Handling Overlapping Memory
- 14:26Assignment Operators
- 18:58Question and Answer Session
- 21:51Indiscernible Address Logic
- 29:25POD and Padding Bytes
- 32:33Functional vs Procedural
- 37:08Proving Correctness
- 41:16Basic Interface Summary
- 47:21Future Work and Q&A
related talks
59mBuilding Cpp Interfaces That Are Hard to Use Incorrectly
36mInterfaces Matter
58mModern C++ Design (part 2 of 2)
46mA Type, by Any Other Name
01h 01mMaintainability and Refactoring Impact of Higher-Level Design Features
36mPardon the Interposition—Modifying and Improving Software Behavior with Interposers
01h 31mThe C++ Vector Challenge
57mWriting Great Libraries: 89 Easy Steps
