是否有 C++/CLI 智能指针项目(例如scoped_ptr)?

2024-04-09

是否有 C++/CLI RAII 智能指针类用于在托管类型中包含本机指针?只是想知道,在我自己写之前clr_scoped_ptr值类模板。

我知道微软提供的:

  • 本机类中托管句柄的包含:auto_gcroot http://msdn.microsoft.com/en-us/library/ms177047.aspx

  • 托管类中托管句柄的包含:auto_handle http://msdn.microsoft.com/en-us/library/ms177066.aspx

上面两个类似auto_ptr or unique_ptr.

  • 我给出了一个框架代码counted_handle在这里,类似于shared_ptr https://stackoverflow.com/questions/3685451/raii-in-c-cli/3686993#3686993

但所有这些都是为了处理托管引用类实例,而不是为了释放本机对象。


This one http://www.codeproject.com/Messages/1356536/msclr-auto_ptr-STL-like-solution.aspx看起来相当完整,但我并不是在寻找所有权的静默转让auto_ptr.


我已经在相当宽松的许可证下发布了我的版本代码审查.se https://codereview.stackexchange.com/q/1695/2150

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有 C++/CLI 智能指针项目(例如scoped_ptr)? 的相关文章

  • C++/CLI 事件有监听器吗?

    在 C 中 我可以检查事件是否有任何侦听器 C 示例 public static event EventHandler OnClick if OnClick null OnClick null new EventArgs 在 C CLI 中
  • C++/CLI pin_ptr

    是 C CLI 的pin ptr http msdn microsoft com en us library 1dz8byfh 28v vs 80 29 aspx相当于C 的固定陈述 http msdn microsoft com en u
  • std::make_unique 和 std::unique_ptr 与 new 之间的差异

    Does std make unique有任何效率优势 例如std make shared 与手动构建相比std unique ptr std make unique
  • 是否应该始终使用 boost::ptr_vector 代替 std::vector ?

    这只是我遇到的一个概念性问题 在我当前的项目中 感觉我过度使用了 boostsmart ptr and ptr container图书馆 我正在创造boost ptr vectors在许多不同的对象中 并调用 Transfer 方法从一个对
  • unique_ptr 和 OpenSSL 的 STACK_OF(X509)*

    我用一些using声明和unique ptr与 OpenSSL 一起使用 如在另一个问题中建议 https stackoverflow com a 38079093 608639 如果没有 代码会变得非常丑陋 而且我不太喜欢 goto 语句
  • 从 Visual C++ 调用 C# 代码

    基本上我需要从 Visual C 代码调用 C 代码 在阅读了大量有关可能方法的文章后 我决定使用 C CLI 机制 最初我决定在 C 本机代码 dll 库项目 中使用一些函数 它们将调用 CLR 项目中的一些函数 CLR 项目将调用 C
  • 是否存在具有单个强所有者和多个弱引用的共享指针?

    我正在寻找类似于的智能指针Arc Rc只不过它不允许共享所有权 我想要尽可能多的rc Weak我需要的参考资料 但我只想one强引用 又称所有者 我想通过类型系统来强制执行这一点 Arc Rc可以克隆 并且可以在多个地方拥有它们 滚动我自己
  • 如何在 C++/CLI 中显式/隐式实现接口成员?

    在 C CLI 中与此等效的内容是什么 class Explicit IClonable void IClonable Clone class Implicit IClonable public void Clone 正如 nobugz 所
  • 将现有表单添加到 C++/CLI WinForms 项目

    我在不同的解决方案中有两个 C CLI 项目 A 和 B 我使用 A 进行实验 测试 并在完成测试后将测试的代码移至 B 但是 我发现在将 Windows 窗体类 标头 cpp 和 resx 添加到项目 B 时 我无法再使用 IDE 的可视
  • CLI/C++:void* 到 System::Object

    这是一个类似的问题这个帖子 https stackoverflow com questions 1154929 void to object in c cli 我一直无法用它来解决我的问题 我在这里包含了一些代码 希望能帮助某人了解其他帖子
  • 返回 unique_ptr 私有成员数据而不转移所有权

    Context 下面的错误似乎告诉我无法退回我的unique ptr called m head从这个获取函数 我只想归还我的unique ptr m head而不转移所有权 自从引入智能指针以来 我一直在完全避免使用原始指针 因为原始指针
  • 用于建模一般树结构及其迭代器的智能指针

    我通过为每个节点建立一个类来建模一般树结构 该类包含指向父级 第一个子级和第一个兄弟级的指针 以及指向最后一个兄弟级的指针 不需要 但有用 为此 我添加了一些额外的数据 我目前的实现是 class TreeNode typedef boos
  • 智能指针+循环+“->”

    有时我真的很确定我想要指针的循环依赖 并且循环上的每个对象都应该能够使用他的指针 所以它不能是weak ptr 我的问题是 这是否意味着我的设计很糟糕 如果我想实现图怎么办 我可以使用智能指针吗 在图中有循环 但是对于weak ptr我不能
  • C# 如何 P/调用 NtRaiseHardError

    以下 C 代码会导致蓝屏 include stdafx h include
  • unique_ptr需要存储删除器怎么可能没有开销呢?

    先看看C Primer讲了什么unique ptr and shared ptr 16 1 6 美元 效率和灵活性 我们可以确定的是shared ptr不将删除者视为直接成员 因为删除器的类型直到运行时才知道 因为删除器的类型是a类型的一部
  • 一个新的通用指针any_ptr(现在为dumb_ptr)使代码在智能指针中更可重用

    我最近一直在使用很多不同的 boost 智能指针 以及普通指针 我注意到 当你开发时 你往往会意识到你必须切换指针类型和内存管理机制 因为你忽略了一些循环依赖或其他一些烦人的小事情 当发生这种情况并且您更改指针类型时 您必须要么去更改一大堆
  • 本机 C++ 通过代理 C++ 托管 dll 使用 C# dll

    这相当复杂 所以请耐心听我说 我有一个用本机 仅限 Win32 C 编码的第 3 方程序 目标 作为目标设计的一部分 它实现了一个 dll 插件系统 本机 DLL 当放置在程序的 ext 目录中时 由目标加载 然后 目标根据需要调用每个 D
  • 有效地调用非托管方法,将非托管对象作为托管代码的参数

    我有以下场景 托管代码将初始化类的许多对象 该类是非托管结构的包装器 为此我可以采用两种方法 一种是拥有一个托管类包装器 它只有一个指向非托管对象的指针 另一种是拥有一个成熟的托管类 并在需要调用非托管方法时创建非托管对象 我已经提供了以下
  • 使用 std::unique_ptr 管理 COM 对象

    我正在尝试使用智能指针来保存我的类中的 COM 对象 同时避免使用 ComPtr 是否可以使用 unique ptr 来达到此目的 我对智能指针很陌生 到目前为止我有点困惑 请考虑以下简化代码 class Texture private s
  • C++/CLI 从具有抽象方法的本机 C++ 类继承并将其公开给 C#

    我一直在谷歌上转圈子 试图找到一个成熟的例子 但没有成功 我有一个 C API 它提供了许多包含纯虚方法的类 供开发人员从中进行扩展 我试图做的是通过 C CLI 向 C 提供此接口 我已经设法将 API 编译到 C CLI 库中 但由于我

随机推荐