~/talk

Compile-time contract checking with nn

Talkat CppCon 2015 · 2015-09-21..09-25· [software-architecture, security]
links:none on file
slides:none on file

Dropbox’s C++ codebase uses a compile-time non-nullable pointer wrapper called nn wrapper that enforces nullability in the type system rather than with annotations; it provides NN make_unique/NN make_shared helpers, implicit conversions to the underlying pointer, operator* and -> forwarding, and macros that assert or throw on explicit boundary checks. Building it required heavy template tricks, workarounds for Clang/GCC conversion bugs, and revealed move-from dangers and dead code; source and tests live on GitHub.

AI-written summary · about

  1. 0:00Introduction to compile-time null checks
  2. 1:02Motivation and C++ flexibility
  3. 4:09Why null is problematic
  4. 5:36What we built: NN wrapper
  5. 8:10NN constructor and conversion rules
  6. 12:09Real-world compiler bugs and workarounds
  7. 13:57Integration into Dropbox codebase
  8. 16:26Move semantics and non-null pointers
  9. 17:29Future directions and limitations
  10. 18:56Q&A session
~/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.