C++/CLI 等效于 C# 检查关键字

Posted

技术标签:

【中文标题】C++/CLI 等效于 C# 检查关键字【英文标题】:C++/CLI equivalent of C# checked keyword 【发布时间】:2013-02-21 23:28:03 【问题描述】:

C++/CLI 中的托管代码有没有办法在算术溢出时引发异常? C# 有选中的关键字和全局项目标志来启用这些,但我在 C++/CLI 中都找不到...

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

【问题讨论】:

What is the C++ equivalent of the C# checked 的可能重复项 ***.com/questions/14500593/…的可能重复 嗯!我们几乎在同一时间发布了该链接:D 对,这是否意味着 C++/CLI 始终检查算术? 【参考方案1】:

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

使用 checkedunchecked 关键字最初计划用于 C++/CLI 的未来扩展。 Ecma-372 是当前的语言标准,并在附录 F.2.1 中提出了此扩展。然而,这从未发生过,也不太可能实现。

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

【讨论】:

谢谢!我被那个链接的问题弄糊涂了——似乎很误导人。

以上是关于C++/CLI 等效于 C# 检查关键字的主要内容,如果未能解决你的问题,请参考以下文章

C# 等效于 C 的 fread 文件 i/o

C# 默认关键字在 F# 中的等效项是啥?

等效于链式 LINQ 扩展方法调用中的 'let' 关键字的代码

等效于链式 LINQ 扩展方法调用中的 'let' 关键字的代码

如何创建只能由特定类使用的构造函数。 (C# 中的 C++ Friend 等效项)

C# 等效于 SQL Server 中的 IsNull() 函数