Don’t get overloaded by overload sets
Roth Michaels
C++ developers write or use overload sets quite often in their daily work. On the surface overload sets seem like an easy to understand feature but this is C++ so there is lots of nuance lurking below the surface.
After demonstrating what overload sets are and how overloads are chosen we will dive into some tricky parts of this feature: we will look at argument dependent lookup (ADL), templates, type conversions, inheritance, and more and how these features interact in useful but also potentially surprising ways. Examples covered will come from issues that have come up writing production code or mentoring developers.
We will conclude by looking at recommendations and API considerations when designing overload sets (including operator overloading). We will look to the C++ Core Guidelines where useful.

Roth Michaels
Roth Michaels is a Principal Software Engineer at Native Instruments, an industry leader in real-time audio software for music production and broadcast/film post-production. In his current role he is involved with software architecture andtechnology strategy bringing together three merged engineering organizations and legacy codebases: Brainworx, iZotope, and Native Instruments. He also supports the Audio Research team to help accelerate moving research to productization and developing fast prototyping tools for product teams. Before merging with Native Instruments, when he joined iZotope, Roth was the lead library designer of a new internal cross-platform "Glass", part of which is now available as open-source. More recently in his former role as Mix/Master Software Architect, Roth helped develop the reference implementation to move iZotope's products to subscription and led the team that launched the company’s first SaaS offering for music producers. Roth studied music composition at Brandeis University and continued his studies in the Dartmouth Digital Musics program. Roth began his career in software development writing software for his own compositions, and the works of other composers and artists, and teaching MaxMSP to composers and musicians; both private instruction and designing university courses. Before joining iZotope, he was working as a consultant for small startups working on mobile applications specializing in location services and Bluetooth.