Embracing the **noexcept** Operator and Specifier *Safely*

Embracing the noexcept Operator and Specifier Safely

14:00 - 15:30 Wednesday 6th April 2022 BST



The noexcept operator, in concert with the noexcept specifier, enables generic code to choose a more efficient algorithm for types that have nonthrowing move and swap operations. These two C11 features, which have continued to evolve with every release of the language since C11, are important to high-performance computing yet, when overused, can profoundly jeopardize the maintainability of a large code base.

In this talk, we will explore what the noexcept keyword means, what it offers, how it can be used effectively, the potential pitfalls one can encounter (and how to avoid them), and some excruciating noexcept annoyances that exist in the C Standard today. Finally, we propose a fix for C23 that will address several of the most egregious pitfalls and annoyances of these important features.

Background: Modern C offers a cornucopia of new features, not all of which are equally *safe*, especially when applied at scale. The material presented in this talk derives directly from our recently published book, *Embracing Modern C Safely, wherein we categorize the features of modern C++ as *safe, conditionally safe, or unsafe.

John Lakos

John Lakos, author of Large-Scale C Software Design [Addison-Wesley, 1996], 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 analytic 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 Large-Scale C — Volume I: Process and Architecture [Addison-Wesley, 2020], the first book in a three-part series, and a coauthor of Embracing Modern C++ Safely [Addison-Wesley, 2021] with Vittorio Romeo along with Rostislav Khlebnikov and Alisdair Meredith.

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.