Zum Inhalt springen

Details

Meeting C++ is hosting an interview with Andreas Pfaffenbichler! He will be giving the talk Static and Dynamic External Polymorphism in C++23 and Beyond at Meeting C++ 2026!

Talk description:
The C++ "built-in default" for polymorphism is "Inheritance".

Over the last 20 years, it became clear: separating the interface from the implementation is in many aspects superior. These two adjacent approaches got named "Internal" and "External Polymorphism".

While Rust pioneered first class language support for the latter paradigm, libraries showed up to bring this approach to the C++ world.

After we gained an overview of the "Polymorphism Landscape" in C++, we will use Any++, a C++23 based library to show how complicated design patterns can be elegantly addressed with External Polymorphism, when:

  • Known C++ runtime super powers like Downcasting and Crosscasting are also supplied
  • Open (Multi)-Methods are integrated. E.g. for visitors and binary Type Erased operators.
  • Flexibility of Type Erasure is combined with the performance of std::variant
  • Type Erasure is merged with Templates
  • The v-table is replaced with type based Static Dispatch (Concept Maps!)

To achieve this functionality without boilerplate, Any++ had to resort to a preprocessor based EDSL.That is not a romantic setting to fall in love at first sight.
Luckily C++26 is around the corner! In the last chapter we will show, how a boilerplate free API with the functionality of Any++ can be provided with C++26's generative reflection mechanisms.

Bio:
Dipl. Ing. Computer Science
Founder (1993) and CEO of Bit Factory Software GmbH in Steyr, Austria.
Their product "ALEX" is used in 800 companies in Austria and Germany for planning and billing working hours and services.
The system is written in C++ and has evolved over 30 years from a Windows client-server architecture to its current form, where the same codebase runs on Windows, WebAssembly, and mobile devices. Its functionality extends to an ML component that can solve practical nurse scheduling problems.
To ensure an agile and sustainable development process over this period, they place great emphasis on comprehensive and automated testing, as well as the latest and most promising technologies, especially Sanitzer and the latest available C++ versions (Currently all C++23 features, excluding modules).
He is currently working on improving their object-oriented architecture through the use of Type Erasure.

Bring your questions!
17:00 Interview start

Verwandte Themen

Functional Programming
Computer Programming
Concurrent Programming
Software Development
C & C++

Das könnte dir auch gefallen