通常,我使用的对象将具有(签名的)int
参数(例如int iSize
),这些参数最终会存储某物应该有多大。同时,我经常将它们初始化-1
为表示对象(等)尚未设置/尚未填充/尚未准备好使用。
comparison between signed and unsigned integer
当我做类似的事情时,我经常会收到警告if( iSize >= someVector.size() ) { ... }
。
因此,我名义上不想使用unsigned int
. 是否有任何情况会导致错误或意外行为?
如果不是:处理此问题的最佳方法是什么?如果我使用编译器标志-Wno-sign-compare
,我可能(假设地)错过我应该使用unsigned int
(或类似的东西)的情况。unsigned int
那么在与--eg比较时我应该只使用演员表if( iSize >= (int)someVector.size() ) { ... }
吗?