我知道 C++/CLI 相当于这个 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; }
}
但这似乎不太好。