Calendrical C++: std::chrono, History, Mathematics and the Computus

Our job as programmers is to solve real-world problems with appropriate abstractions. The real world is messy, and few things are messier than dealing with calendars. It has been claimed -- without too much exaggeration -- that most mathematical progress before the 1600s was driven by trying to figure out when Easter falls.

This talk combines C++, history, and the process of finding abstractions for this interesting and simplification-resistant problem. Attendees will learn plenty about the proper usage of std::chrono constructs, gain an insight into why calendars are so complex and how to find the right ways to express things clearly, and encounter a plethora of historical goodies along the way.

If you need a break from thinking about the (somewhat self-imposed) problems of cutting-edge C++, this is the talk for you: there are only real-world complications here. I've been down this rabbit-hole for months; join me for an exploration of what I've found.


Ben Deane

Ben has been programming in C++ for this whole millennium. He spent just over 20 years in the games industry working for companies like EA and Blizzard; many of the games he worked on used to be fondly remembered but now he’s accepted that they are probably mostly forgotten. After getting more interested in modern C++, in the teens he started giving internal company talks and then talks at various conferences, spreading ideas about types, algorithms and declarative and functional techniques.

In 2018 he left the games industry and worked in finance for a short spell, writing high-frequency trading platforms using the most modern C++ that compilers could support. Now he is a Principal Software Engineer at Intel where he puts monads inside your CPU.




July 17-19, 2023


CppNorth Group