Visual Studio 2008, debug build. Эта линия C++assert (true) предупреждает о несоответствии подписанного/неподписанного
assert(true);
вызывает данной жалобу
warning C4365: 'argument' : conversion from 'long' to 'unsigned int', signed/unsigned mismatch
предупреждение сохраняется при замене true
с любым (полезным) логическим выражением, даже с 1ul
.
FYI, файл компилятора 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__
??