We disable all analysis warnings around Boost code, and then we disable the last couple of stragglers from the project code.
In one case, MSVC apparently chooses to warn about non-enum-class enums at the first place they're used instead of at their declaration. It's enough to disable the warning around that first use.
In another case, an API function is incorrectly annotated, so MSVC warns when an _In_ HANDLE parameter is passed a null value, even though that usage is specifically intended in the API. MSVC doesn't like it when _In_ values receive null pointers.
We disable all analysis warnings around Boost code, and then we disable the last couple of stragglers from the project code.
In one case, MSVC apparently chooses to warn about non-enum-class enums at the first place they're used instead of at their declaration. It's enough to disable the warning around that first use.
In another case, an API function is incorrectly annotated, so MSVC warns when an
_In_ HANDLE
parameter is passed a null value, even though that usage is specifically intended in the API. MSVC doesn't like it when_In_
values receive null pointers.