Visual Studio 2008, version de débogage. Cette ligne de C++assert (true) avertit de la non concordance signée/non signée
assert(true);
provoque la plainte
warning C4365: 'argument' : conversion from 'long' to 'unsigned int', signed/unsigned mismatch
L'avertissement persiste lors du remplacement true
avec un (utile) expression booléenne, même avec 1ul
.
Pour votre information, le fichier du compilateur assert.h
est:
#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);
Comment cet avertissement être supprimé proprement, sans supprimer tous C4365 de? Est-ce la faute de __LINE__
??