[This question is related to but not the same as this one.]
My compiler warns about implicitly converting or casting certain types to bool whereas explicit
Based on your link to MS' explanation, it appears that if the value is merely 1 or 0, there is not performance hit, but if it's any other non-0 value that a comparison must be built at compile time?