For a long time, there has been the so-called "Protected Hack". On many platforms, it is possible to #define protected public and to simplify the generated code this way.
Unfortunately, this trick does not work under Windows, and we have to do quite some type casts to get the desired effect, when things are protected.
But there is no known problem that cannot be solved without the "Protected Hack", in so far I don't see any need to keep this hack. Additionally, this hack generates a code split between Windows and Unix-alikes. It happened recently that a patch went through and broke Windows, because we forgot about this hack.
As a first step, I will disable the hack, i.E. remove the --avoid-protected-hack flag and define m_avoidProtectedHack = true;. Later, after activation of the CI system, the variable will be completely evicted.