id summary reporter owner description type status milestone component version severity resolution keywords cc 1069 _InterlockedExchange, _InterlockedExchangeAdd have wrong signature Braden McDaniel Peter Dimov "Microsoft describes the signature of {{{_InterlockedExchange}}} as {{{ extern ""C"" LONG __cdecl _InterlockedExchange(LPLONG volatile Target, LONG Value); }}} See http://msdn2.microsoft.com/en-us/library/f24ya7ct(VS.71).aspx In boost/detail/intrinsic.hpp, this function gets declared as {{{ extern ""C"" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long ); }}} The problem is that {{{LPLONG volatile}}} is equivalent to {{{long * volatile}}}, not {{{long volatile *}}}. This results in compilation failures in the presence of a correct declaration of this function; i.e., the compiler complains that you cannot overload C functions. " Bugs closed To Be Determined smart_ptr Boost 1.34.0 Problem invalid