Visual Studio 2008,調試版本。的C++斷言(真)警告簽名/未簽名不匹配
assert(true);
此行導致投訴
warning C4365: 'argument' : conversion from 'long' to 'unsigned int', signed/unsigned mismatch
與任何(有用)布爾表達式替換true
時,即使有1ul
警告仍然存在。
僅供參考,編譯器的文件assert.h
是:
#define assert(_Expression) (void)((!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0))
extern "C" _CRTIMP void __cdecl _wassert(_In_z_ const wchar_t * _Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line);
怎麼能這樣的警告可以乾淨抑制,但不影響所有 C4365的?是__LINE__
的錯?