我应该删除从动态指针移动的指针吗

2023-12-13

我了解如何移动物体,例如:

int a(5), b(6);
int c(std::move(a)); // move constructor
c = std::move(b);    // move assignment

我了解自定义移动构造函数的常见实现(它获取动态指针的所有权并将移出指针设置为nullptr.)

但我还没有发现任何有关移动动态分配的指针本身的信息。我需要确认以下代码是否合法:

int *p(new int(42));
int val(std::move(*p));
delete p; // I think this is no longer necessary. Is it?

那么,是否允许移动动态指针呢?


std::move不移动任何东西。它只是将左值引用转换为右值引用。

在您给出的示例中,指针p没有搬到任何地方。

顺便提一句。请不要处理原始指针 - 使用std::unique_ptr反而。

这为 int 分配内存,将 int 初始化为值 42 并将该内存的地址存储在 p 中。

int *p(new int(42));

这会转换指向的 intp to an int&&然后构造 intval来自该 r 值参考。由于 int 是整型,因此右值(即移动)的构造相当于副本(这是标准中规定的)

int val(std::move(*p));

是的,这个还是有必要的。

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

我应该删除从动态指针移动的指针吗 的相关文章

  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • PHP - 无法访问外部 URL

    由于流量很大 我最近升级了网站的服务器 在新服务器上 PHP 的某些方面似乎被破坏了 我有一个非常具体的代码 但不起作用 但是 由于版权原因 我只能向您展示非机密的等效内容 这段代码有效绝对完美在升级之前 现在这里或那里的一些奇怪的设置阻止
  • 如何在 C# 中将图像覆盖或叠加到视频上

    我试图弄清楚如何在 Visual C 中将图像覆盖在 保存的文件 视频上 然后重新保存它 在过去的四个小时里 我一直在努力做到这一点 到处寻找 所以任何帮助将不胜感激 DirectShow NET 是 DirectShow 的包装器 Dir
  • UIViewController 自由格式尺寸问题

    我正在使用这个神奇的 PopupViewController https github com martinjuhasz MJPopupViewController 控制 我的应用程序使用故事板 我已经按照开发人员的指示创建了一个自定义 S
  • 提取双引号之间的字符串

    我正在阅读来自期刊或论文来源的响应 并且我将 html 响应作为字符串 如下所示 一些人认为 梦表达了 人格的深刻方面 Foulkes 184 尽管其他人不同意 我的目标只是从给定字符串中提取所有引号并将它们保存到一个列表中 我的方法是 m
  • 如何使用JAVA向COM PORT发送数据? [复制]

    这个问题在这里已经有答案了 可能的重复 Windows 上的 Java 串行通信 朋友们 我想在JAVA中连接并传输数据到COM PORT 虚拟的或原始的 这个问题已经被问过并回答过很多次了 使用Java从串口读取文件 Java读取串口 J
  • 如何编译Boost多线程程序?

    我安装了boost库 没有多线程 一切都很顺利 我如何编译这个测试程序 include
  • iOS 应用程序在 PushViewController 上冻结

    我的导航控制器在按下时会间歇性冻结 它似乎将新的视图控制器添加到堆栈中 但动画从未发生 我还有另外两个容器 它们在屏幕上保存视图控制器 并且在导航控制器冻结后我可以与它们进行良好的交互 真正有趣的是 如果我尝试将另一个视图控制器推送到导航控
  • Python 最小值/最大值的关键字函数

    我试图理解这是如何工作的 my dict a 2 b 1 min my dict key my dict get produces b 这是一项非常酷的功能 我想更好地了解它 基于文档 分钟 可迭代 键 返回可迭代中的最小项或两个或多个参数
  • c# - DbContext 在BackgroundService 中释放

    我有一个 WebAPI 它也应该从 RabbitMQ 接收消息 我用了this教程 因为我知道有时 IIS 喜欢终止长时间运行的任务 但尚未在服务器上测试它 也许它不起作用 我有一个处理通过 RabbitMQ 接收的消息的服务 我遇到的第一
  • 让数据绑定 WPF Listbox 生成子类 ListboxItems

    我想让我的 WPF Listbox 数据绑定 生成子类 ListboxItems 而不是常规 ListboxItems 在这种情况下 DataTemplate 是不够的 因为我需要子类 ListBoxItems 的一些自定义属性 有没有办法
  • Android - 如何禁用长按搜索按钮 (Nexus One)

    Android文档描述了如何禁用Activity中的搜索功能 公共布尔 onSearchRequested 返回假 短按 Nexus One 上的搜索按钮即可正常工作 但是 它不会禁用长按 仍然会启动语音搜索 如何禁用长按语音搜索 谢谢 我
  • 当所需DLL的名称可能发生变化时,如何在运行时选择DllImport的路径?

    我今天问了这个问题 但它被错误地关闭了 我无法选择重新打开它 因此 我不得不再问一遍 我有一个类 其中有一长串定义 如下所示 DllImport NativeLibraryName EntryPoint FunctionName Calli
  • Python 正则表达式 OR

    假设我想要一个同时匹配 从我的 iPhone 发送 和 从我的 iPod 发送 的正则表达式 我该如何写这样的表达式 我尝试过类似的事情 re compile Sent from my iPhone iPod 但似乎不起作用 re comp
  • 在 clickonce 应用程序中安全地存储服务帐户凭据

    我正在编写一个 ClickOnce 应用程序 该应用程序使用服务帐户凭据运行批处理文件进程 我需要存储服务帐户凭据 以便程序可以在运行进程之前将用户名 密码添加到 process startinfo 属性 用户不知道该密码 因此不会提示他们
  • 如何使用 libmosquitto 进行编译

    我正在尝试编译 libmosquitto 网站 底部 上提供的代码示例 http mosquitto org man libmosquitto 3 html 我使用 Ubuntu 12 04 并且安装了 libmosquitto1 和 li
  • R Shiny - 重置闪亮树节点选择

    下面的应用程序包含一个shinyTree 一个重置按钮 Reset nodes 和打印输出 选定的节点 打印输出打印的输出get selected函数 它返回选定节点的列表 这是启动时树的屏幕截图 没有选择任何节点 因此get select
  • AngularJS 高级选项卡 - 两个 ng-transclude

    Angular UI 仅支持基本选项卡 我想创建一个支持嵌套选项卡和高级标题 可以包括 html 的指令 我认为最好的语法是
  • java.lang.IllegalStateException:找不到工厂 javax.faces.application.ApplicationFactory 的备份

    我已升级应用程序以使用 javax faces 2 2 4 和 primefaces 4 0 jar 将应用程序从 myeclipse 部署到 weblogic 后 出现以下错误 Jan 10 2014 2 37 13 PM javax f
  • 单击外部时隐藏 div

    我正在使用一个简单的 javascript 代码来切换 div onclick 您可以在此链接上看到它的运行情况 k prim biz Untitled 2 html 这是一个非常简单的演示页面 我想要做的是不仅在单击 链接 时隐藏 div
  • 我应该删除从动态指针移动的指针吗

    我了解如何移动物体 例如 int a 5 b 6 int c std move a move constructor c std move b move assignment 我了解自定义移动构造函数的常见实现 它获取动态指针的所有权并将移