我已将VC++项目形式从VS2008迁移到VS2013,并收到一些警告,例如:



如何解决这些类型的警告?

最佳答案

在MSVC 2013中,std::streamsize是:

typedef _Longlong streamsize;
typedef _LONGLONG _Longlong;
#define _LONGLONG   __int64
size_t是:
typedef unsigned __int64    size_t;

因此,一个简单的再现案例是:
unsigned __int64 b = 1;
__int64 a = b;

但是,这不会发出警告-因此,您可能在某处将size_t重新定义为32位吗?

为了清楚起见:
std::streamsize b = 1;
size_t a = 0;
b = a;

也不会发出警告。

08-16 00:25