C ++ / CLI相当于C#checked关键字

时间:2013-02-21 23:28:04

标签: c# c++ c++-cli overflow

C ++ / CLI中的托管代码是否有办法在算术溢出时抛出异常? C#有check关键字和全局项目标志来启用它们,但我在C ++ / CLI中都找不到...

我的情况是我在.NET中包装C ++库。有时C ++本机代码会溢出。我正在考虑将一些敏感的计算转移到现有的C ++ / CLI包装器上,但也许这是不可能的?

1 个答案:

答案 0 :(得分:4)

链接的副本毫无意义,C ++ / CLI遵循C ++约定。 C ++没有用于检测算术溢出的内置机制。

最初计划使用已检查未经检查的关键字,以便将来扩展C ++ / CLI。 Ecma-372是当前的语言标准,并在附录F.2.1中提出了这一扩展。然而,这种情况从未发生过,也不太可能实施。

因此,您必须自己实施溢出检查。您可以在this question找到一些指导。