C++14 dependency injection and exploring the clang tooling universe

This is a past event

127 people went

Location image of event venue

Details

We have another great pair of talks lined up this month, with Kris Jusiak and Peter Goldsborough.

(As before, please also register on the SkillsMatter page (https://skillsmatter.com/meetups/9079-c-plus-plus-london-february-meetup))

In software development there are only really three numbers: 0, 1 and Many. So as we enter the Many era I'm dropping the Meeting[x] label from the event title.

Agenda:

18:30 pre-session networking, including drinks at the bar if you like

19:00 Phil Nash (https://www.meetup.com/CppLondon/members/48127252/) << "Hello World"

Brief introduction and raffle for a JetBrains license

19:10 Peter Goldsborough (https://www.meetup.com/members/196512826/) << "clang-useful: exploring the clang tooling universe for fun and profit"

The talk will be a ground-up introduction to the LLVM/clang library infrastructure available for creating custom tools for static analysis or (clang-format-style) source-to-source transformation. I will discuss the LLVM and clang tooling environment and explain how clang represents C++ source code by means of an abstract syntax tree (AST), as well as ways of traversing the AST and looking for certain points of interest, such as code style violations or more severe code smells. After a theoretical introduction I will give one practical example of how any (motivated) C++ programmer can quickly build an effective tool to increase their productivity and improve the performance, style and safety of their code. By the end of the talk I expect listeners to have a basic understanding of the LLVM/clang tooling ecosystem and take away knowledge they can apply immediately at home or in the office.

19:40 // Questions, hand-over, break

19:50 Kris Jusiak (https://www.meetup.com/CppLondon/members/215805993/) << "Boost your design with C++14 dependency injection"

In this talk we will explore how to boost our design with dependency injection - a design pattern which is part of the S.O.L.I.D principles (OO design) and helps with producing loosely coupled and easy to test code. We will go through different ways of injecting dependencies in modern C++ and we will also inspect how to inject them automatically with [Boost].DI. Finally, we dig into C++20 and beyond to figure out what features might help us with DI in the future.

---

We'll finish around 20:35-20:45 at which point we'll adjourn to the bar/ nearby hostelry for more informal discussion and networking.

About the speakers:

Kris is a Software Engineer focusing on modern C++ development where performance (including compilation times) and quality matters. He has been crafting modern C++ in telecommunications, games and recently finance industries. Kris is an author of [Boost].DI, [Boost].SML and GUnit libraries.

Peter is a second-year CS student at TU Munich and currently doing a gap year to do internships and break things at Google, Facebook and Bloomberg.