.net – CC++LI堆栈语义相当于C#的现有对象使用语句?

.net – CC++LI堆栈语义相当于C#的现有对象使用语句?,第1张

概述我知道C/C++LI相当于这个C#代码: using (SomeClass x = new SomeClass(foo)){ // ...} 这是: { SomeClass x(foo); // ...} 但有没有类似简洁和类似RAII的方式来表达这一点: using (SomeClass x = SomeFunctionThatReturnsThat(foo)){ 我知道C/C++li相当于这个C#代码:
using (SomeClass x = new SomeClass(foo)){    // ...}

这是:

{    SomeClass x(foo);    // ...}

但有没有类似简洁和类似RAII的方式来表达这一点:

using (SomeClass x = SomeFunctionThatReturnsThat(foo)){    // ...}

要么:

SomeClass x = SomeFunctionThatReturnsThat(foo);using (x){    // ...}

?我最接近的工作示例是:

SomeClass^ x = SomeFunctionThatReturnsThat(foo);try{    // ...}finally{    if (x != nullptr) { delete x; }}

但这似乎不太好.

解决方法 msclr::auto_handle<>是托管类型的智能指针:
#include <msclr/auto_handle.h>{    msclr::auto_handle<SomeClass> x(SomeFunctionThatReturnsThat(foo));    // ...}// orSomeClass^ x = SomeFunctionThatReturnsThat(foo);{    msclr::auto_handle<SomeClass> y(x);    // ...}
总结

以上是内存溢出为你收集整理的.net – C/C++LI堆栈语义相当于C#的现有对象使用语句?全部内容,希望文章能够帮你解决.net – C/C++LI堆栈语义相当于C#的现有对象使用语句?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1255620.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存