gpt4 book ai didi

c++ - C4267 : 'return' : conversion from 'size_t' to 'const UINT' , 可能丢失数据

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:07 24 4
gpt4 key购买 nike

如何使用类型转换为 const UINT 来解决以下警告?

C4267:“return”:从“size_t”到“const UINT”的转换,可能会丢失数据

Class CManager
{
std::vector<CString> m_ncount;
public:
const UINT GetMCount( int nInst) const;
}


const UINT CManager::GetMCount( int nInst) const
{
return m_ncount.size();//C4267
}

这是正确的吗?

const UINT CManager::GetMCount( int nInst) const
{
return (const UINT)m_ncount.size();//C4267
}

最佳答案

UINT(这不是标准的。unsigned int 实际上是标准的)至少是 16 位,这意味着它是实现依赖的。不保证它可以用作 index 或容器 size。但是,根据定义,size_t 大小与 sizeof 运算符的输出完全相同。保证在所有平台上的所有情况下都能正常工作。

所以,解决方案是使用size_t。任何其他解决方案都将忽略实际问题。感谢您的编译器警告!

关于c++ - C4267 : 'return' : conversion from 'size_t' to 'const UINT' , 可能丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34790978/

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