unique_ptr到不透明结构?(C++)
unique_ptr to an opaque struct? (C++)
库定义了一种不透明的数据类型:
struct OpaqueStruct;
并且客户端代码必须获得并释放CCD_ 1。我可以访问图书馆的资料来源。
不幸的是,shared_ptr
和unique_ptr
都不能存储给出错误:对不完整的类型应用"sizeof"无效。
我能想到的最好的事情是从这个帖子中借用finally guard。
如何将RAII用于不透明结构指针
您只能构造和删除完整类型,另请参阅此处:删除指向不完整类型的指针';要点';;没有调用析构函数。因此,至少进行构建/销毁的代码片段需要知道完整的类型。
您可以使用不完整的类型声明unique_ptr或shared_ptr。对于这些智能指针的哪些成员,您可以在只知道不完整类型的上下文中使用,请参阅is std::unique_ptr<T>需要知道T?的完整定义?。
std::unique_ptr<OpaqueStruct, void(*)(OpaqueStruct*)>
ops(newOpaqueStruct(), deleteOpaqueStruct)
相关文章:
- 如何循环打印顶点结构
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 预处理器:插入结构名称中的前一个行号
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 孤立代码块在结构中引发异常
- 有什么方法可以遍历结构吗
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 无法将结构注册为增强几何体3D点
- 多成员Constexpr结构初始化
- C++将文本文件中的数据读取到结构数组中
- 如何重构类层次结构以避免菱形问题
- 如何在C++中序列化结构数据
- std::vector的包装器,使数组的结构看起来像结构的数组
- 没有为自己的结构调用列表推回方法
- 奇怪的结构&GCC&clang(void*返回类型)
- 在 c++ 中拥有一组结构的正确方法是什么?
- vscode g++链路故障:体系结构x86_64的未定义符号
- C++概念:如何使用'concept'检查模板化结构的属性?