Dreimal C++ – lambdas in legacy code

Wie schon zuletzt beschrieben, galt es C++ Software aus einem Nachbarprojekt zu übernehmen. Die dort tätigen Kollegen verwendeten begeistert die Features von C++ 2014. Vor allem der Datentyp „auto“ und die Initialisierung mit geschweiften Klammern hatte es ihnen angetan. Auch setzten sie shared_ptr und unique_ptr ein. Falls diese dann doch mit traditionellen Pointer darunter mischen, startet unter Umständen eine interessante Fehlersuche.

Aber mich interessierte die Art und Weise wie sie lambdas einbauten. Ich suchte nach eckigen Klammer gefolgt von einer geöffneten Klammer und konnte drei Sorten identifizieren:

  1. lokale Subroutinen (hätte man auch mit #defines machen können)
  2. Abräumer von von Windows handles (scope guard, geht kaum ohne lambdas)
  3. zur Initialisierung von static Variablen (das fand ich cool)

„Dreimal C++ – lambdas in legacy code“ weiterlesen