我遇到了一个奇怪的“警告 639:二进制操作中类型 'myip' 的强类型不匹配”
//file ip4.h
#include <IPAddress.h> // which have ::ip::IPAddress
typedef ::ip::IPAddress myip;
myip myiptest; // lint Warning 639
::ip::IPAddress ip2; // No lint warnings
IPAddress.h 文件包含 ::ip::IPAddress 如下
namespace ip
{
struct IPAddress
{
IPAddress();
...
};
}
我认为这里没有不匹配!此错误的 PC-lint 手册说明:
当一个值通过二元运算符与另一种类型连接(即组合)时,检查强类型。
那么有什么问题呢?
更新:经过试验,似乎只有在结构具有构造函数时才会引发此警告,我认为这以某种方式解释了当我声明一个对象时它返回类型::ip::IPAddress
不是myip
这里是不匹配的事情。我对吗?