Andreas Weis


Andreas has been writing software professionally for more than 10 years, working in areas ranging from real-time graphics to distributed systems to embedded systems. He enjoys hiding complex functionalities behind powerful type-rich interfaces and likes it very much when the compiler finds his bugs for him. Andreas is one of the co-organizers of the Munich C++ user group, where he gets to discuss these topics with others on a regular basis.

He currently works for BMW, where he tries to make cars smarter than humans.



Taming dynamic memory - An introduction to custom allocators in C++ (2018)

Dynamic memory allocation is a feature that is often taken for granted. Most developers use some form of new or malloc every day, usually without worrying too much what goes on behind the scenes. But what about those situations where the built-in mechanisms are not good enough, be it for reasons of performance, safety, or due to restrictions of the target hardware?

In this talk, we will explore how C++ uses custom allocators to overcome those issues. We will explain how basic allocation techniques like pooling and monotonic allocation behave with regards to performance and reliability. We will take a look at some of the technical challenges behind allocators, like the different forms of alignment and the way that the standard library manages stateful allocators. And finally, we will take a look at some popular allocator implementations and how to integrate them with a modern C++ codebase.


Howling at the Moon: Lua for C++ Programmers (2017)

C++ is a great tool for solving complex problems in a thorough way. But every once in a while, the desire for a simpler language emerges. For those parts of our code where performance is of secondary concern, but the ability to perform rapid iterations over the code is paramount, a scripting language might be a tempting choice. But integrating a second language besides C++ and managing the interaction between the two is also scary.

Lua is a light-weight, dynamic language that was designed to be used as an embedded language within existing applications. It is easy to learn, has very reasonable runtime performance, and a memory footprint small enough that it is usable even on embedded systems. Furthermore, it is almost trivial to integrate with C++.

This talk will give a brief introduction to the Lua scripting language, highlighting specifically how it can complement C++'s language features to enrich a developer's toolbox. In the second part of the talk we will look at Lua's C API and give suggestions how to integrate it with a modern C++17 codebase. In particular we will focus on how to interface with the dynamic language Lua without compromising the benefits of C++'s strong type system.