我正在将复杂的代码库从32位移植到64位。
在规划期间,强调的一个可能问题是错误的重载解决方案。
举例说明:
#include <cstddef>
int f(unsigned int a) { return 0; }
int f(unsigned long long a) { return 1; }
size_t x;
int main() {
return f(x);
}
不会产生任何警告;然而在32位系统下返回0,但在64位系统下返回1。
是否有标准工具可以找到所有此类案例?
我同时使用Windows和Linux,因此不会排除特定于平台的工具!