Documentation in the Era of Concepts and Ranges

Documentation in the Era of Concepts and Ranges

16:00 - 17:30 Friday 8th April 2022 BST




Concepts and ranges change how we should think about documentation in C++. Concepts give us a new way to explicitly constrain templates without resorting to arcane tricks, directly stating requirements on our interfaces as code. Ranges allow us to restructure our programs to describe what the code should do by composing named patterns rather than how it should do it through state-manipulating operations. As a facility for specifying requirements, to what extent are concepts self-documenting for users of a given interface? How should we balance pure-code descriptions of our interfaces with textual descriptions? How can we use them in aid of creating documentation tuned for our target audience and give them the information they need in a digestible format? We’ll discuss these questions, propose some answers, look at existing documentation from real-world projects, and use ranges as a case study for documenting concepts-based APIs.

Christopher Di Bella

Christopher Di Bella is a software engineer working on Google’s Chrome OS toolchain team. In a nutshell, this means he’s responsible for delivering a high-quality LLVM toolchain to Chrome OS developers, and some of that work includes libc. Christopher is passionate about generic programming and education, and is also a #include <C> organiser.

When he’s not programming, Christopher likes to watch films, play games, swim, snowboard, and go on the occasional hike.

Sy Brand

Sy Brand is Microsoft’s C Developer Advocate. Their background is in compilers and debuggers for embedded accelerators, but they’re also interested in generic library design, metaprogramming, functional-style C, undefined behaviour, and making our communities more welcoming and inclusive.

In their spare time they watch too many movies and are a published poet.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.