- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Handles除了指针之外还有适当的语义。所以对我来说这样的例子(从 Rule of Zero 中提取):
class module {
public:
explicit module(std::wstring const& name)
: handle { ::LoadLibrary(name.c_str()), &::FreeLibrary } {}
// other module related functions go here
private:
using module_handle = std::unique_ptr<void, decltype(&::FreeLibrary)>;
module_handle handle;
};
使用 unique_ptr
作为句柄的“包中所有权”是一个不好的例子。首先,它利用句柄是指针类型的内部知识,并使用它为“不透明”句柄类型构建的基本类型创建 unique_ptr
。
句柄可以是任何类型,它们可以是指针,它们可以是索引或者谁知道呢。最重要的是,您手头上(例如大多数 C API)是一个句柄及其资源释放函数。
在句柄语义中是否存在有效的适当“包中所有权”?我的意思是,已经公开可供使用?
对我来说,unique_ptr
等。阿尔。行不通,我必须对句柄类型是什么做出不必要的假设,而我想要的只是通过不透明句柄类型及其释放获得“包中所有权”功能,唯一。
查看句柄类型内部以根据此信息进行构造是没有意义的。这是一个句柄,应该无关紧要。
我将在这里引用另一个 SO 用户在 another question's 中的感受answer :
Create a specific "smart pointer" class, won't take long. Don't abuselibrary classes. Handle semantics is quite different from that of aC++ pointer; for one thing, dereferencing a HANDLE makes no sense.
One more reason to use a custom smart handle class - NULL does notalways mean an empty handle. Sometimes it's INVALID_HANDLE_VALUE,which is not the same.
免责声明:
这个问题重新表述并建立在这个问题的基础上:
最佳答案
unique_ptr
类型不如短语“handle”通用,是的。但为什么不应该呢?您的“句柄”示例之一(例如,整数索引示例)与 unique_ptr
一样通用。您不能将一种特定类型的句柄与“所有句柄”进行比较。
如果您想要一个单一的、具体的 C++ 类型(或类型模板),它是一个句柄,但实际上没有定义任何特定的处理语义,那么……我帮不了您。我认为没有人可以轻松地做到这一点。
关于c++ - 是否有适合 'ownership-in-a-package' 的 'handles' 可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878121/
我想检查是否可以限制架构的所有权不被另一个角色继承。我有一个托管架构,它由角色A拥有(具有所有权特权)。角色B继承角色A,但我不希望角色B继承所有权特权。。这种设置在雪花中可能吗?也就是说,在这种情况
以下代码: public string add_button_tooltip_markup { get { return add_button.get_tooltip_markup (); }
我一直在研究 Cake 的 Auth/ACL 组件。我已经阅读了文档并完成了教程,但我仍然对我实际可以完成的事情不满意。我见过couple的other接近,但我不能说,因为我确实有一个直接的赢家。在我
对措辞表示歉意,我真的找不到其他方式来表达它。 我有一个像这样的历史表: id date from_id to_id 1 2010-01-01 A B 1
由于我的母语不是英语,所以我可能会遗漏一些东西,所以也许这里有人比我更了解。 取自WSASend MSDN 上的说明: lpBuffers [in] A pointer to an array of
我阅读了以下帖子 association owned by classifier and association owned by relationship in UML Setting the as
仍在寻找解决方案 (2/24/16) 我的用户模型与组之间存在 has_many :through 关系。所以用户有很多组,组有很多用户,但我也想由一个用户建立组的所有权,他可以做出最终的决定。 这个
我正在编写一个小的 Java 程序,它应该运行一个外部程序将图像复制到系统剪贴板(即 Windows 7“截图工具”),等待它完成,将图像从剪贴板保存到磁盘并将 URL(可以从中访问图像)复制到剪贴板
我在图形应用程序上工作,并且一直在使用共享指针和唯一指针,主要是因为它为我处理内存重新分配(又名方便),这可能很糟糕(如果这就是我使用它们的原因)。 我最近在 Stackoverflow 上阅读了一个
我对 Android 11 中的存储更改有疑问。如果我理解正确,应用程序可以读取/写入/删除它创建的文件。我也可以像这样访问这些文件: File path = new File(Environment
谁能帮我澄清一下QML Repeater docs意思是首先说 “Items instantiated by the Repeater are inserted, in order, as child
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我有一个方法将间接指针作为参数,如果有错误,则将其设置为错误对象。我正在尝试打开尽可能多的警告。但其中之一 - Implicit ownership types on out parameters -
我正在使用 Boost.Python 向 python 公开一个 C++ 树类。节点类持有子节点列表并提供方法 void add_child(Node *node) Node 类获取提供的 Node
基于 this Stroustrup 建议“函数中的指针不应表示所有权” 问题> 有人可以给我一些详细的解释吗?最好能举例说明。 谢谢 最佳答案 如果某个代码负责删除指针或将所有权转移给其他人,则该指
我正在尝试在 docker 容器中运行 postgresql,但当然我需要让我的数据库数据保持持久性,所以我尝试使用仅数据容器来公开卷以在此位置存储数据库。 所以,我的数据容器有这样的 Dockerf
我对string::assign方法的理解有些差距。考虑以下代码: char* c = new char[38]; strcpy(c, "All your base are belong to us!
我有一个基于 Ruby on Rails 的站点,我需要在其中运行 rake assets:precompile 以获得正确的预编译 Assets 。但是,每当我运行此命令时,我应用程序的 tmp 目
我已经设置了一个服务帐户来复制用户上传的文件。如何将所有权转移到不同的电子邮件地址? 我有: new_permission = {'value': 'me@example.com', 'type':
我一直在尝试包装 CPointer 类型的 native 对象,认为该对象控制底层 native 对象的生命周期。 在 C++ 术语中,我会做类似的事情: class T { private: U
我是一名优秀的程序员,十分优秀!