nonstandard extension used : union with static member variable
Microsoft C++ allows C++ programs to contain static member variables in a union. This condition will not generate a warning in C programs.
This extension can prevent your code from being portable to other compilers and will generate an error under the /Za command-line option.