Strong opinions, (bi-)weekly held - with great guests from the C++ community

auto this_episode = episode<51> {
.title = "The next Call to Random() Must Be 4", /*

We've talked about contracts before, but this week Björn Fahller joins us to give us his thoughts, based on his recent talk at C++ on Sea. This is all pre-Kona - the recent Standards meeting that saw several tweaks to the wording for contracts in the draft standard for C++20.

Björn gives us a refresher of what contracts actually are, and how many of us have been using them in some form for years - even decades. Then we discuss what's actually going into C++20, why that's worth having compared to assert() or hand-rolled or library solutions - but also what the shortcomings are - including a couple of weakenesses that have cause some to think that contracts may be "dead on arrival". Where does the truth lie? Björn makes his case and (somewhat boringly) Jon and Phil tend to agree.

But what does it matter? The whole show is undefined behaviour, anyway.

.links = { "C++ on Sea videos", /* Now fully uploaded */ "Italian C++ Conference", /* Andre Alexandrescu keynoting - Saturday June 15, Milan */ "ACCU Conference", /* 2018-10-05 to 2018-10-26 */ "emBo++", /* 14th to the 17th of March */ "C++ Now", /* May 5, 2019 - May 10 */ "Catch2 2.6.1 released", "Why You Should Use std::for_each over Range-based For Loops", /* Jon's guest post on Jonathan Boccara's blog */ "Episode #32 on Contracts" /* with John Lakos and Kévin Boissonneault */ },
.tags = { "invariants", "postconditions", "preconditions", "design-by-contract", "assert", "contracts", "c++20", "c++" } };

Released: 5 March 2019
1 hr 32 secs

A YouTube stream archive of this recording is also available:

< previous episode
next episode >