gpt4 book ai didi

c++ - C4244 : '+=' : conversion from 'std::streamsize' to 'size_t' , 可能丢失数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:41 28 4
gpt4 key购买 nike

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

C4244: '+=' : conversion from 'std::streamsize' to 'size_t', possible loss of data.

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

最佳答案

在 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;

也不会发出警告。

关于c++ - C4244 : '+=' : conversion from 'std::streamsize' to 'size_t' , 可能丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34633031/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com