gpt4 book ai didi

c++ - 如果我在转换中丢失数据,我可以在 C++ 中引发异常吗?

转载 作者:行者123 更新时间:2023-11-30 02:44:29 27 4
gpt4 key购买 nike

我正在开发一个遗留的 C 产品,它有很多转换和潜在的数据丢失——从 int 到 short 类型的转换。在 Visual Studio 中,如果发生这种数据丢失,是否有办法导致异常,或者我是否需要用断言填充我的代码?

最佳答案

C++ 的语言特性不支持在有损转换时抛出异常。如果您使用大括号初始化,从 C++11 开始,编译器需要让您知道可能缩小的转换,但这并不意味着转换正在缩小在实践中(即在运行时).

解决此类问题的最佳方法是编写自己的库来执行此操作,或者使用已经存在的库,例如 SafeInt .

关于c++ - 如果我在转换中丢失数据,我可以在 C++ 中引发异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25256436/

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