Welcome curious reader!

My name is Andreas Reich and I work currently as a Software Engineer at Unity in Stockholm (Opinions do not reflect those of my employer etc. 😉 ).
I was born in Germany, where I did my Master’s degree in Computational Visualistics and co-founded the awesome student game developer club Acagamics.

I am privately interested in a lot of technical stuff, among them GPU programming, game engines, software design and programming languages.


7 thoughts on “About

  1. Hi Andreas,
    I think you wrote this nice VS plugin “Include Toolbox”.
    How can I modify the filter to have first the includes with “” and than the includes with
    #include “a.h”
    #include “b.h”



  2. You mean first includes with quotation marks and then with the angle brackets (wordpress doesn’t display that)? Hmm I can see how this can be useful, but currently it’s not possible. The regex list in the option for sorting always takes the include string itself without quot/angle brackets.
    I opened a ticket here, I’m going to add an option for that 🙂


  3. Hi Andreas,
    The include toolbox is a great work! I gave it a try both at work and at home, after some IWYU configuration it worked like a charm for win32 builds. Using latest IWYU (0.80) and setting prefix_header_includes to “keep”.gave me the best results.

    I also found several things that can be improved:

    – It seems toolbox does not pass current target (x64 or win32) to IWYU, causing errors in x64.
    – It doesn’t pass Nuget dependencies to IWYU – for instance, I’m using Nuget distributed Boost library
    – When using SSE2, Clang seems not able to emulate MSVC well enough, causing compilation errors
    – In case Clang fails due to too many compilation errors, the incomplete / erroneous suggestions from IWYU are still auto-applied
    – IWYU added headers are always appended below the last inclusion, even when it is an inactive macro block. I’m not sure if this is an IWYU issue or the plugin’s.
    – There is no way to pass in additional options / definitions to IWYU

    – Trial and error mode does not take inactive macro block into account, so it would remove an inactive #include just because it would still compile.

    – Include graph does not support searching

    Despite imperfection, the plugin is powerful and easy to use. I can see it becoming a must-have for developers on windows / visual studio soon. Thanks for the work!



    • Hi Fei,

      Thank you very much for the kind words!
      A few of the issues you’re listing are quite limitations of IWYU, others are already logged and most deserve a closer look. I’ll put them on GitHub and look after them when I have more time (fairly busy currently). Thanks for the feedback!



    • Alright there we go:

      • Not passing target to IWYU: https://github.com/Wumpf/IncludeToolbox/issues/43
      • Nuget dependencies: This shouldn’t be an actual issue since I’m passing all include paths. As I understand the matter there is no extra magic in the Nuget system involved that would change the build. Or what would I need to pass here?
      • SSE2 issues: A IWYU issue, out of my reach, sorry
      • IWYU suggestions still applied when IWYU fails: I’d call that a feature. The changes are put on the undo stack so you should be able to undo them easily
      • IWYU headers added at last inclusion: It’s an IWYU issue. The plugin puts lines exactly where IWYU wants them (it outputs a line number)
      • No additional options: https://github.com/Wumpf/IncludeToolbox/issues/44

      • T&E not looking into inactive macro blocks: That’s pretty much a system flaw in the approach. No idea how to fix that.

      I was wrong earlier, none of those were logged yet 🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s