Narrow Contracts and `noexcept` are Inherently Incompatible in C++ - John Lakos - ACCU 2024
ACCU Membership: https://tinyurl.com/ydnfkcyn --- Narrow Contracts and `noexcept` are Inherently Incompatible in C++ - John Lakos - ACCU 2024 --- A contract is a plain-language specification of whatever essential behavior a given function promises to deliver when invoked in contract. A function that has at least one syntactically valid combination of state and input for which the behavior is undefined has a precondition and is therefore said to have a narrow contract. The Lakos Rule effectively prohibits placing the `noexcept` specifier (introduced in C++11) on any function that would otherwise have a narrow contract. This talk begins with a reprise of contracts, essential behavior, and preconditions. We’ll then go on to contrast two classic software design principles, Design by Contract and Liskov Substitutability, and then use the latter to explain how both backward compatibility and wide implementations benefit from scrupulously adhering to The Lakos Rule. We conclude that best practice is to follow this rule, especially in the specification of the C++ Standard Library, and we close with a welcome solution that satisfies essentially all needs and wants of the eclectic C++ multiverse. Slides: https://accu.org/conf-previous/accu2024/ Sponsored By think-cell and Bloomberg --- John Lakos John Lakos, author of Large-Scale C++ Software Design (Pearson, 1997), serves at Bloomberg LP in New York City as a senior architect and mentor for C++ Software Development worldwide. He is also an active voting member of the C++ Standards Committee’s Evolution Working Group. Previously, Dr. Lakos directed the design and development of infrastructure libraries for proprietary analytical financial applications at Bear Stearns. For 12 years prior, Dr. Lakos developed large frameworks and advanced ICCAD applications at Mentor Graphics, for which he holds multiple software patents. His academic credentials include a Ph.D. in Computer Science ('97) and an Sc.D. in Electrical Engineering ('89) from Columbia University. Dr. Lakos received his undergraduate degrees from MIT in Mathematics ('82) and Computer Science ('81). He is the author of the multi-volume book Large-Scale C++, the first volume of which, Volume I: Process and Architecture (Pearson, 2020), is currently available, and subsequent volumes are forthcoming. He is the coauthor of Embracing Modern C++ Safely (Pearson, 2021) along with Vittorio Romeo, Rostislav Khlebnikov, and Alisdair Meredith. --- The ACCU Conference is the annual conference of the ACCU membership, but is open to any and all who wish to attend. The tagline for the ACCU is 'Professionalism in Programming', which captures the whole spectrum of programming languages, tools, techniques and processes involved in advancing our craft. While there remains a core of C and C++ - with many members participating in respective ISO standards bodies - the conference, like the organisation, embraces other language ecosystems and you should expect to see sessions on C#, D, F#, Go, Javascript, Haskell, Java, Kotlin, Lisp, Python, Ruby, Rust, Swift and more.The ACCU Conference is a conference by programmers for programmers about programming. Discounted rates for members. ACCU Membership: https://tinyurl.com/ydnfkcyn 2024 Program: https://accu.org/conf-previous/accu2024/ https://accu.org https://www.accuconference.org/ https://mastodon.social/@ACCUConf / accu-conference https://bsky.app/profile/accuconf.bsk... / accuorg / accuconf --- YouTube Videos Filmed, Edited & Optimised by Digital Medium: https://events.digital-medium.co.uk #accuconf #programming #cplusplus #cppprogramming #softwareengineering

Embracing noexcept Operators and Specifiers Safely - John Lakos - CppNow 2022

Keynote: Safety, Security, Safety and C / C++ - C++ Evolution - Herb Sutter - ACCU 2024

Programming Fundamentals -C Language -File Structures, File Open, Process, Write, Read, Close-Part I

Perspectives on Contracts for C++ - Lisa Lippincott - CppCon 2024
![Threads Considered Harmful - Lucian Radu Teodorescu [ ACCU 2021 ]](https://i.ytimg.com/vi/_T1XjxXNSCs/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLATD4b_uTtyVmXpctWWHdhw2QCSZg)
Threads Considered Harmful - Lucian Radu Teodorescu [ ACCU 2021 ]

Boxing Errors and the Into Trait in Rust

TypeScript, C# and Turbo Pascal with Anders Hejlsberg

Concurrency in C++: A Programmer’s Overview (part 1 of 2) - Fedor Pikus - CppNow 2022

Zig is at a crossroads

The Benefits of Learning a Different Programming Language - Francis Glassborow - ACCU 2024

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

The new MISRA C++ 2023 Safety Guidelines - Peter Sommerlad

It finally happened

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

CppCon 2016: John Lakos “Advanced Levelization Techniques (part 1 of 3)"

Something is jamming GPS over Europe. Here's what we found

Professor Jiang: World War 3 Is About To Begin, Let Me Explain!

Employing Modern C++ for High Performance Delta-Coding Compression - Eduardo Madrid - C++ on Sea

I am done with Golang

