Modernizing Finite State Machines in C++ - Empower Simplicity & Boost Performance With std::variant
https://www.cppnow.org --- Modernizing Finite State Machines Implementation in C++ - Empower Simplicity and Boost Performance With std::variant - Amandeep Chawla - C++Now 2024 --- Finite State Machines (FSMs) are fundamental tools in computer science for modeling behavior in various systems, from software applications to hardware controllers. Traditionally, implementing FSMs in C++ involved using multiple inheritance hierarchies for representing states, events and actions along with heap-allocated objects. However, with the introduction of std::variant in modern C++, there is a compelling opportunity to revolutionize FSM design, offering simplicity, type safety, and performance improvements. In this talk, we explore how leveraging std::variant transforms FSM implementation, allowing for a more intuitive representation of states and transitions. By embracing variant-based FSMs, developers can streamline code, enhance readability, and mitigate common pitfalls associated with traditional FSM designs. Furthermore, we delve into performance considerations and showcase how std::variant facilitates efficient state management, removing need for heap allocation at all. Attendees will gain insights into the principles of FSM design, understand the benefits of adopting std::variant for FSM implementation, and learn practical strategies for incorporating modernized FSMs into their C++ projects. Whether you're a seasoned C++ developer seeking to simplify FSMs or a newcomer exploring advanced language features, this talk offers valuable perspectives on harnessing the power of std::variant to elevate FSM development to new heights. --- Slides: https://github.com/boostcon/cppnow_pr... --- Amandeep Chawla Amandeep Chawla is a seasoned software engineer with over 20 years of experience in C++. Since graduating in 2002, he has been actively working with C++ throughout his career. In his early years, Amandeep specialized in embedded systems, where he utilized a small subset of C++. This foundational experience provided him with a deep understanding of low-level programming and resource-constrained environments. In 2006, Amandeep joined Adobe, where he has held various roles over the past 17 years. Throughout his tenure at Adobe, he has been extensively involved in projects that heavily rely on C++. As a Senior Computer Scientist - II, Amandeep is currently a valued member of the core team responsible for Adobe CC Libraries. His contributions to the team involve leveraging C++ to develop robust and cross-platform solutions. With his extensive experience in C++, Amandeep has gained valuable insights into the language's strengths, limitations, and best practices. He has a deep appreciation for tackling complex challenges and finding innovative solutions to optimize performance, maintainability, and cross-platform compatibility. --- C++Now 2025 - 28th April - 2nd May C++Now is an annual onsite international C++ programming and coding conference held in Aspen, Colarado. For all C++ developers, C++ software engineers and those involved with the C++ language, CppNow provides an indepth and technical content provided by the best and brightest C++ experts of the C++ world. Annual CppNow Conference - https://www.cppnow.org / cppnow / cppnow / cppnow / cppnow https://mastodon.social/@cppnow think-cell develops one of the world’s leading PowerPoint applications, with C++ at the core of everything we build, from layout algorithms to deep integration with Microsoft Office. Interested in working on challenging C++ problems with real-world impact? Explore our open roles: https://www.think-cell.com/en/career/... --- Videos Filmed & Edited By Bash Films: https://bashfilms.com/ YouTube Channel Managed & Optimized By Digital Medium Ltd: https://events.digital-medium.co.uk --- #boost #cpp #cppprogramming #softwareengineering #cplusplusprogramming

Glean: C++ Code Indexing at Meta - Michael Park - C++Now 2024

Zero-Cost Abstractions in C++ - High Performance Message Dispatch - Luke Valenty - C++Now 2024

Introduction to Wait-free Algorithms in C++ Programming - Daniel Anderson - CppCon 2024

Performance Optimization in Software Development - Being Friendly to Your Hardware - Ignas Bagdonas

What is Low Latency C++? (Part 1) - Timur Doumler - CppNow 2023

Security in C++ - Hardening Techniques From the Trenches - Louis Dionne - C++Now 2024

C++ Coroutines at Scale - Implementation Choices at Google - Aaron Jacobs - C++Now 2024

Cost of C++ Abstractions in C++ Embedded Systems - Marcell Juhasz - CppCon 2024

Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025

Computers Without Memory - Computerphile

Dependency Injection in C++ - A Practical Guide - Peter Muldoon - C++Now 2024

Branchless Programming in C++ - Fedor Pikus - CppCon 2021

C++ Coroutines Demystified - Phil Nash - ACCU 2025

Embedded Asynchronous Abstraction C++ - Implementing Senders & Receivers Without an OS - Ben Deane

Inside Anthropic, the $965 Billion AI Juggernaut | The Circuit

State Machines - How to engineer better software

Reintroduction to Generic Programming for C++ Engineers - Nick DeMarco - C++Now 2024

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

An introduction to finite state machines and the state pattern for game development

