I don't much like an idea that variables will be initialized whether I want it or not. And I can't find any official information/documentation about Microsoft InitAll Automatic Initialization, only a blog post written by Joe Bialek, Microsoft Software Security Engineer. From his post:
InitAll is enabled for the following components:
1. All kernel-mode code (i.e. anything compiled with /KERNEL) in the Windows code repository
2. All Hyper-V code (hypervisor, kernel-mode components, user-mode components)
3. A variety of other projects such as networking related user-mode servicesInitAll is implemented in the front-end of the compiler. Any variables that meet the criteria listed above and which are not initialized at declaration will be initialized at declaration by the front-end. One benefit of this approach is that from the optimizer’s perspective, this looks identical to the developer having initialized at declaration in the source code. This means that any optimizations we build to improve performance with InitAll enabled are not InitAll specific, they benefit anyone that initializes at declaration (or before use).
"A variety of other projects" is very vague. I want to know exactly if variables are auto-initialized against my will, maybe against the standard (though I'm not sure about that one, because "indeterminate" that used in the standard doesn't necessarily imply the compiler can't initialize it implicitly).