C ++ / CLI中的托管代码是否有办法在算术溢出时抛出异常? C#有check关键字和全局项目标志来启用它们,但我在C ++ / CLI中都找不到...
我的情况是我在.NET中包装C ++库。有时C ++本机代码会溢出。我正在考虑将一些敏感的计算转移到现有的C ++ / CLI包装器上,但也许这是不可能的?
答案 0 :(得分:4)
链接的副本毫无意义,C ++ / CLI遵循C ++约定。 C ++没有用于检测算术溢出的内置机制。
最初计划使用已检查和未经检查的关键字,以便将来扩展C ++ / CLI。 Ecma-372是当前的语言标准,并在附录F.2.1中提出了这一扩展。然而,这种情况从未发生过,也不太可能实施。
因此,您必须自己实施溢出检查。您可以在this question找到一些指导。