id summary reporter owner description type status milestone component version severity resolution keywords cc 8120 DONT_USE_HAS_NEW_OPERATOR warning with MSVC and Intel compiler hamon Robert Ramey "I get the following warning relating to the **DONT_USE_HAS_NEW_OPERATOR** macro: {{{ boost/archive/detail/iserializer.hpp(69): warning #3199: ""defined"" is always false in a macro expansion in Microsoft mode }}} I can reproduce this warning when using Intel Compiler 13.1 with VS2010. Previous versions of Intel compiler did not emit this warning. However the warning appears to be correct as use of **defined** in a macro expansion is undefined by the standard. I also confirmed with a few tests that MSVC always evaluates such macros to false. The solution I am using to fix this warning is to is replace all the uses of **defined** in the **DONT_USE_HAS_NEW_OPERATOR** macro with a comparison to 0. For example instead of {{{ defined(__BORLANDC__) }}} use {{{ __BORLANDC__ != 0 }}} " Bugs closed To Be Determined serialization Boost 1.59.0 Problem fixed