C++ Type Erasure Demystified - Fedor G Pikus - C++Now 2024
https://www.cppnow.org --- C++ Type Erasure Demystified - Fedor G Pikus - C++Now 2024 --- This talk is about type erasure in C++ (I have to be specific because the term has a completely different meaning in other languages). The aim of this talk is to explain how type erasure works, and do it in a very simple and clear way. Type erasure is probably the closest C++ comes to “and then magic happens.” It’s a technique used to write a program (in a strictly typed language, no less) that doesn’t mention the types it works with. It is the pinnacle of abstraction in C++, and, like most abstractions, it’s much easier to show what that looks like than to define it: most concise definitions of type erasure are circular. So we will begin the talk by demonstrating what the code looks like after the magic happens. Then comes the biggest letdown of all time: I’ll show the basic technique that type erasure relies on. It’s very simple, it’s very familiar, it predates C++, and every implementation of type erasure uses it. After that, we learn three basic ways to implement type erasure. There are several great type erasure libraries out there, you should use them if you just want to get stuff done. I’m going to strip them down to the bare minimum to show the essence of each implementation as clearly as possible. Along the way, we will learn how vtables are implemented. Finally, we will measure and compare the performance of the different implementations of type erasure. Type erasure is easy to implement; fast type erasure is not really any harder to implement, but it relies on some subtle details I’m going to demonstrate (including how to make std::function 50% faster). Whether you want to write your own implementation or use an existing library, by the end of this talk the type erasure will no longer be shrouded in a mystic aura for you. --- Slides: https://github.com/boostcon/cppnow_pr... --- Fedor Pikus Fedor G Pikus is a Technical Fellow and head of the Advanced Projects Team in Siemens Digital Industries Software. His responsibilities include planning the long-term technical direction of Calibre products, directing and training the engineers who work on these products, design, and architecture of the software, and researching new design and software technologies. His earlier positions included a Chief Scientist at Mentor Graphics (acquired by Siemens Software), a Senior Software Engineer at Google, and a Chief Software Architect for Calibre PERC, LVS, and DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to the software industry. Fedor is a recognized expert in high-performance computing and C++. He is the author of two books on C++ and software design, has presented his works at CPPNow, CPPCon, SD West, DesignCon, and in software development journals, and is also an O'Reilly author. Fedor has over 30 patents and over 100 papers and conference presentations on physics, EDA, software design, and C++ language. --- 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 #cppnow #softwaredevelopment

Value Oriented Programming Part V - Return of the Values - Tony Van Eerd - C++Now 2024

Unlocking Modern CPU Power - Next-Gen C++ Optimization Techniques - Fedor G Pikus - C++Now 2024

C++ Weekly - Ep 343 - Digging Into Type Erasure

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

Modern C++: Unique Ptrs and Vectors

Cache-Friendly C++ - Jonathan Müller - CppCon 2025

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

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

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

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

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”

C++ Reflection - Back on Track - David Olsen - C++Now 2024

C++ Design Patterns - The Most Common Misconceptions (2 of N) - Klaus Iglberger - CppCon 2024

Modernizing Finite State Machines in C++ - Empower Simplicity & Boost Performance With std::variant

Deep .NET: Writing async/await from scratch in C# with Stephen Toub and Scott Hanselman

Back to Basics: Concepts in C++ - Nicolai Josuttis - CppCon 2024

Investigating Legacy Design Trends in C++ & Their Modern Replacements - Katherine Rocha C++Now 2024

Functional C++ - Gašper Ažman - C++Now 2024

Undefined Behavior in C++: What Every Programmer Should Know and Fear - Fedor Pikus - CppCon 2023

