Why is this an issue?
Using "#pragma warning (default: …)" resets the warning in question to its default settings, which may not be what the compiler was initially
invoked with. Typically, this usage is seen after a warning is turned off, in preparation for code that is known to cause warnings. Instead, the
warning’s current state should be saved, and then restored after the code in question.
Noncompliant code example
#pragma warning (disable: TheWarning)
#pragma warning (default: TheWarning)
#pragma warning (push)
#pragma warning (pop)