Type Erasure - The Implementation Details - Klaus Iglberger - Meeting C++ 2023

Поділитися
Вставка
  • Опубліковано 14 лют 2024
  • Type Erasure - The Implementation Details - Klaus Iglberger - Meeting C++ 2023
    “If I could go back in time and had the power to change C++, rather than adding virtual function, I would add language support for Type Erasure …” (Eric Niebler, June 19, 2020, Twitter).
    For many developers Type Erasure is superior to inheritance with respect to dependency management. And indeed, it has proven itself to be a powerful design pattern, helping to significantly reduce coupling between software entities. Unfortunately, there is no language support for Type Erasure (yet) and many shy away from the seemingly complex implementation details.
    In this talk I will give advice on the different ways of how to implement Type Erasure. I’ll start with two very simple, ~20 line implementations for owning and non-owning Type Erasure Wrappers. But I’ll also go into detail about different performance optimization strategies, such as the manual implementation of virtual functions and the Small Buffer Optimization (SBO). After this talk, attendees will know everything to realize and utilize Type Erasure in their own code bases.
  • Наука та технологія

КОМЕНТАРІ • 4

  • @RudMerriam
    @RudMerriam 5 місяців тому +1

    As alway Klaus provides an interesting approach for C++ development. 😀

  • @muratsahin1975
    @muratsahin1975 3 місяці тому

    So, adding new draw or serialize overloads for new ShapeConcepts just really needed? Maybe it should also be included to implementation details of the Shape with a templated version.

  • @TheOnlyAndreySotnikov
    @TheOnlyAndreySotnikov 5 місяців тому

    7:48 Interfaces must always be non-virtual, even if we use good old inheritance-based runtime polymorphism.