托管C++/CLI类中的auto_ptr或shared_ptr等效项

Pas*_* T. 9 c++-cli smart-pointers auto-ptr

在C++/CLI中,您可以在托管类中使用本机类型,因为它不允许在托管类中保存本机类的成员:在这种情况下您需要使用指针.

这是一个例子:

class NativeClass
{
....
};


public ref class ManagedClass
{
private:
  NativeClass mNativeClass; // Not allowed !

  NativeClass * mNativeClass; // OK

  auto_ptr<NativeClass> mNativeClass; //Not allowed !
  boost::shared_ptr<NativeClass> mNativeClass; //Not allowed !

};
Run Code Online (Sandbox Code Playgroud)

有没有人知道C++/CLI世界中相当于shared_ptr的东西?

编辑:感谢您的建议,"1800-信息".根据您的建议,我检查了STL.Net,但它仅适用于Visual Studio 2008,它提供容器+算法,但没有智能指针.

Pas*_* T. 2

我在codeproject上找到了答案:

Nishant Sivakumar 在http://www.codeproject.com/KB/mcpp/CAutoNativePtr.aspx上发布了一篇关于此问题的文章

在此页面上,还可以查找 Denis N. Shevchenko 的评论:他提供了一个类似 stl 的实现,效果非常好。