std::unique_ptr 的自定义删除器如何工作?

2023-12-04

根据 N3290,std::unique_ptr在其构造函数中接受删除器参数。

但是,我无法使其与 Windows 中的 Visual C++ 10.0 或 MinGW g++ 4.4.1 一起使用,也无法与 Ubuntu 中的 g++ 4.6.1 一起使用。

因此,我担心我对它的理解不完整或错误。我看不出明显被忽略的删除器参数的意义,所以有人可以提供一个有效的示例吗?

最好我还想看看它是如何工作的unique_ptr<Base> p = unique_ptr<Derived>( new Derived ).

可能用标准中的一些措辞来支持该示例,即无论您使用什么编译器,它实际上都会执行它应该执行的操作?


这在 MSVC10 中对我有用

int x = 5;
auto del = [](int * p) { std::cout << "Deleting x, value is : " << *p; };
std::unique_ptr<int, decltype(del)> px(&x, del);

在 gcc 4.5 上,here

我将跳过标准,除非您认为该示例没有完全按照您的预期进行操作。

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

std::unique_ptr 的自定义删除器如何工作? 的相关文章

  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 即使没有异步,CallContext.LogicalGetData 也会恢复。为什么?

    我注意到CallContext LogicalSetData LogicalGetData不按照我期望的方式工作 内部设置的值async方法得到恢复即使没有异步或任何类型的线程切换 无论如何 这是一个简单的例子 using System u
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 在 C# 中检查 PowerShell 执行策略的最佳方法是什么?

    当你跑步时Get ExecutionPolicy在 PowerShell 中 它得到有效的执行政策 https learn microsoft com en us powershell module microsoft powershell
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • WiX 工具集捆绑包,总内容大小 > 2GB

    是否可以制作一个 WiX 安装包 其内包内 msi 和 exe 的总大小超过 2GB 目前在我的 wxs 模板中我有一个
  • MongoDB - $setIsSubset 运算符不适用于 $match 阶段

    我构造了一个这样的查询 db test aggregate match setIsSubset hello you words 我想返回字段 words 数组包含字符串 hello you 的所有文档 执行此查询我收到此错误 errmsg
  • 在 ASP.NET 4 WebForms 中压缩和缩小 WebResource.axd 和 ScriptResource.axd

    我已经尝试了一周来减少我们的网络应用程序上的请求数量 但我似乎无法将 axd文件 我从某个地方得到了一个建议 该建议在本地 开发框 上有效 但在我们的测试和生产环境中不起作用 因为它们都在HTTPS 开发人员没有对此发表评论 他编写的组件上
  • Swift 将有符号的 Int [int8] 数组转换为无符号的 Int [UInt8] 数组

    如何将 Int8 有符号数组转换为 UInt8 无符号数组 let arryData Int8 108 11 107 14 35 57 116 118 54 91 12 67 21 29 44 111 我只想将上面的转换为无符号 UInt8
  • 如何在图像尺寸变大时绕其中心旋转图像(在 Pygame 中)

    我加载了一张图像 我希望它绕其中心旋转 同时其比例越来越大 我最初知道如何围绕图像的中心旋转图像 但是如果比例变大 我很难计算位置 我尝试过 但图像只是 跳舞 而不是停留在中心 简短回答 存储源图像矩形的中心 并在旋转和缩放操作之后通过存储
  • 新的 Google 表格(电子表格)是否有可用的 API?

    随着新版本 Google 表格 电子表格 的推出 Gdata API 不再起作用 看https support google com drive answer 3543688 是否有新的 API 可用于新的 Google 表格 或者 Gda
  • 保持单词顺序的同时进行字符串组合

    给定一个字符串 String words Mary had a little lamb 如何在保持原句子中单词出现顺序的情况下获得句子片段的组合 example Mary had a little lamb Mary had a littl
  • 从分发邮件 ID 发送邮件的问题 [Python]

    我看到了以下问题 但我仍然有一些疑问 从通讯组列表发送电子邮件 首先 我有一个单独的邮件帐户以及用于特定邮件服务器中的组的分发 ID 我可以通过 Outlook 从分发邮件 ID 发送邮件 只需指定From场地 它不需要身份验证 我一直使用
  • Mongoose(mongodb)批量插入?

    Does 猫鼬 v3 6 现在支持批量插入吗 我已经搜索了几分钟 但与此查询匹配的任何内容都是几年前的 答案是明确的 否 Edit 为了将来参考 答案是使用Model create create 接受数组作为其第一个参数 因此您可以传递要作
  • 将参数传递给应用程序

    这个问题可能看起来有点模糊 但我们开始吧 我正在阻止我的 wpf 应用程序的多个实例 如下所示 Process proc Process GetCurrentProcess if Process GetProcessesByName pro
  • AWS 中的生产级微服务架构

    我有一个新的网络应用程序 在我们公司我们决定如下所示 我是第一次创建该架构 所以需要一些投入 1 前端 React js 2 后端 Java Spring boot 3 架构 微服务 4 基础设施 AWS 5 CI 詹金斯 我们把开发分为三
  • 系统启动/重新启动时 WMI 调用花费太多时间

    我想获取Windows服务的路径 var managementObjectSearcher new ManagementObjectSearcher Select from Win32 Service where serviceName M
  • TMemo 无法正确处理 Unix 文本(LF 作为行结尾)

    TMemo 无法正确处理 Unix 输入 LF 用 LF 分隔的两行显示并被视为一行 我想处理所有可能的文本格式 Mac Win Unix 显然 每次我都可以检查文本并用 CRLF 替换 LF 加载文本表单文件 粘贴文本 使用 Add 函数
  • 什么是花栗鼠? (除了作为物理引擎)

    希望这个问题并不像我担心的那样愚蠢 但它可能仍然相当愚蠢 我是 Objective C 和 Cocoa 的新手 事实上 我对 C 总体来说是完全陌生的 我正在尝试使用以下方法来实现 iPhone 游戏Cocos2d iPhone 这是我之前
  • 为什么这个矩阵不是数字的?然后 `as.numeric` 销毁矩阵并返回一个向量

    我有一个名为的数据框input 第一列指的是文章 ID ArtID 后续列将用于创建矩阵 基于ArtID 我希望 R 生成一个 2x2 矩阵 更准确地说 它必须是一个 2x2 数字矩阵 具体来说 我想为第一行创建一个矩阵 ArtID 1 第
  • 在 IE7/8 中模拟 CSS3 border-radius 和 box-shadow

    我正在为一个小型网络应用程序开发 HTML 该设计要求内容区域具有圆角和阴影 我已经能够使用 CSS3 生成此内容 并且它在 Firefox 和 Chrome 上完美运行 然而 Internet Explorer 7 和 8 不支持 CSS
  • Odoo 动态多对一域

    我想将动态过滤器应用于基于另一个字段 F2 的多对一字段 F1 我已经使用了 api change装饰器 它可以工作 但不符合预期 当我创建一个新实体时 我更改F2的值 然后转到F1 我发现它已归档 Oki没问题 当我关闭表单 然后再次编辑
  • throw Error('msg') 与 throw new Error('msg')

    var err1 Error message var err2 new Error message 有什么不同 在 Chrome 控制台中查看它们 它们看起来相同 对象上的相同属性和相同 proto 链 几乎看起来像Error就像工厂一样
  • 如何隐藏透明 div 下滚动的内容?

    你有两个 div 一个在另一个上面 上面的那个是透明的 但是 当您滚动时 您希望底部的 div 隐藏 因为它位于第一个之下透明的 div 你不想要第二个 divdisplay 改为none 一旦它进入第一个 div 下方 您只想隐藏下面的部
  • std::unique_ptr 的自定义删除器如何工作?

    根据 N3290 std unique ptr在其构造函数中接受删除器参数 但是 我无法使其与 Windows 中的 Visual C 10 0 或 MinGW g 4 4 1 一起使用 也无法与 Ubuntu 中的 g 4 6 1 一起使