The C++ "built-in default" for polymorphism is "Inheritance".
Modern C++ gives developers powerful tools to write cleaner, safer, and more expressive code — but many production codebases still suffer from excessive boilerplate, repetitive patterns, and verbose implementations inherited from older C++ styles.
This talk explores practical modern C++ techniques that significantly reduce lines of code while preserving readability, maintainability, and runtime performance.
Through real-world examples, we will refactor traditional C++ implementations using features such as ranges, structured bindings, constexpr, concepts, CTAD, lambdas, std::optional, std::variant, and std::expected. We will examine where these features genuinely improve code quality — and where they can accidentally hurt clarity or performance if misused.
The session also goes beyond syntax improvements by analyzing generated assembly, compiler optimizations, allocations, and benchmark results to validate whether “shorter” code truly remains zero-cost.
Attendees will leave with practical patterns they can immediately apply to modernize existing codebases, reduce unnecessary complexity, and write more expressive C++ without sacrificing performance.
C++ is a language of surprises. Programmers are pretty often suprised about programs not compiling or (even worse) not running as expected.
This talk presents my favourite pitfalls and traps of C++, which hit programmers most often.
This talk will discuss translation of graphical user interfaces, focusing on MS Windows (though the principle is applicable to other platforms), covering strengths and limitations of each.
The Pomodoro Technique is a time-management method that breaks work into 25-minute intervals (called "pomodoros") separated by 5-minute breaks. After four cycles, you take a longer 15 to 30-minute break.
With better tools, more available resources, and shared, reusable libraries, bringing your vision to life has never been easier. While not needing to understand all of the details of the system in order to build something has its benefits, it also comes with some downsides. Namely, the price of performance degradation and binary size increase that you need to pay. This was somewhat compensated by the improvements and availability of hardware. But it was never sustainable, and that is especially the case nowadays when the AI industry is consuming most of the hardware production, leaving regular users with very little.
And so optimization is back on the menu, boys.
Here I will talk about how a simple Pomodoro timer can take way more memory than necessary and how a simple, and somewhat visually ugly, C++ implementation can save quite some space. There will be some FLTK, X11, and plain std no-GUI implementations, specific compiler and linker flags, and their impact on the binary size.
After throwing shade at the AI industry, it would be hypocritical not to mention I used AI while preparing this talk.
Ever felt stuck in a legacy codebase with a team - or at least parts of it - that resists change? I’ve been there. In this session, I’ll share practical tactics to help you introduce modern programming styles to a conservative environment—or at least keep your own passion alive while working in one. We’ll dive into the psychology of why some developers resist new practices and I’ll share the technical maneuvers I use to write contemporary code within a legacy framework.
...As the cost of computing hardware becomes increasingly prohibitive, it is now more than ever more crucial than ever to make the most of existing computer hardware.
I will go through various ways to develop C++ programs on the command line, using Neovim(vim) as the foundation, and building up a few scenarios with different performance requirements, from low cost/performance to higher cost/perfomance systems.
The Goal is to enlighten the attendee on what goes on behind the scenes with the Regular Intergrated Development Environments so as to give people the power to create their own custom development environments depending on the available resources.
constexpr started as a way to compute simple values at compile time. Today, it is one of the defining features of modern C++. With every standard since C++11, the things you can do during compilation have expanded. In C++26, compile-time programming reaches an entirely new level with static reflection.
This presentation will demonstrate how asynchronous communication frameworks, such as Boost ASIO, Qt, gRPC, ROS2, TAO, Windows overlapped IO, libevent, curl, and proprietary frameworks, can be used with a single coroutine library to write responsive, distributed applications in a uniform synchronous style.
Atomic memory ordering is often taught operationally: Use acquire here, release there, and perhaps add a fence “to be safe.” This approach tends to produce cargo-cult synchronization, where atomic operations are selected mechanically without a clear understanding of what information is actually being propagated between threads. In practice, memory ordering is not about memorizing enum values, but about establishing which facts become visible to which observers, and when.
This...
The rapid adoption of Generative AI has transformed how students approach programming tasks, raising fundamental questions about learning, effort, and professional identity in computer science education. This talk presents findings from a study of a second-year C++ Object-Oriented Programming course in which unrestricted AI use was encouraged for all project work. The talk will present how students use AI, the impacts of AI use, students’ attitudes toward AI, and their views on how it will affect their careers. We identify several key patterns that point to concrete pedagogical strategies for detecting AI‑supported illusions of competence, calibrating students’ metacognition, and integrating AI as a scaffold rather than a shortcut in programming education.
...We all love the elegance of pure mathematics. Writing complex equations exactly as they appear in textbooks is the dream. But let's be honest: when you hit compile, std::complex often turns that dream into an Array-of-Structures (AoS) performance nightmare. You expect compiler optimisations to save you, but auto-vectorizers take one look at that interleaved data layout, panic, and drown your instruction cache in cross-lane shuffles and horizontal adds. And what happens when you need to go beyond complex numbers? If you need quaternions for 3D rotations, or octonions just to prove you can, the standard library leaves you completely on your own.
We are going to talk about KYOSU, a C++ library providing a unified, SIMD-aware implementation of complex numbers, quaternions, octonions, and general R-Cayley-Dickson algebras. Built on top of EVE, our SIMD wrapper, and KUMI, our tuple replacement, KYOSU delivers over 150 complex domain functions with absolutely zero abstraction penalty.
In...
Compiler Explorer looks simple: type code, get assembly. Underneath: a fleet of sandboxed machines running hundreds of compilers across dozens of languages, terabytes of binaries to keep current, and the ongoing problem of executing arbitrary code from internet strangers.
"Why should we be concerned with custom memory allocators?" - Most developers underestimate how much the physical location of allocated memory can make or break performance - even in code engineered for speed in all other aspects.