由于代码要兼容64位系统,所以,跟指针有关联的整数全部都是适用的INT_PTR和UINT_PTR类型。这两个东西在32位系统下被定义成:
__w64 int和__w64 unsigned int.
但是,VC的模板参数推导机制里,似乎是没有__w64这样的修饰的,因此,所有的__w64 int被推导成类型int,实例化出int类型的模板。在参数传递的时候,由于传递的参数是__w64 int类型,就会导致64位代码移植部分不停的唧唧歪歪吐出一大堆警告。又由于模板代码的出错信息很难理解,VC8.0以后,还会再吐出一大堆相关的代码。
于是,我的真正的性命攸关的警告就被淹没在这一堆信息里了。