Header image
Photo of Victor Ciura

Victor Ciura

Victor Ciura is a Senior Software Engineer at CAPHYON and Technical Lead on the Advanced Installer team. For over a decade, he designed and implemented several core components and libraries of Advanced Installer.

He’s a regular guest at Computer Science Department of his Alma Mater, University of Craiova, where he gives student lectures & workshops on “Using C++STL for Competitive Programming and Software Development”.

Currently, he spends most of his time working with his team on improving and extending the repackaging and virtualization technologies in Advanced Installer IDE, helping clients migrate their Win32 desktop apps to the Windows Store (AppX/MSIX).

Better Tools in Your Clang Toolbox: Extending clang-tidy With Your Custom Checks

Monday 15:00
60 minute presentation

Clang-tidy is the go to assistant for most C++ programmers looking to improve their code. If you set out to modernize your aging code base and find hidden bugs along the way, clang-tidy is your friend. Last year, we brought all the clang-tidy magic to Visual Studio C++ developers with a Visual Studio extension called “Clang Power Tools”. After successful usage within our team, we decided to open-source the project and make Clang Power Tools available for free in the Visual Studio Marketplace. This helped tens of thousands of developers leverage its powers to improve their projects, regardless of their compiler of choice for building their applications.

Clang-tidy comes packed with over 250 built-in checks for best practice, potential risks and static analysis. Most of them are extremely valuable in real world code, but we found several cases where we needed to run specific checks for our project.

This session will focus on extending clang-tidy with custom checks. If you ever wanted a tidy check specific to a particular need of your codebase, you will now get a crash course in writing your own check from scratch. This talk will also share some of the things we learned while developing these tools and using them at scale on our projects and within the codebases of our community users.