unique_ptr 的初始化有什么问题?

2024-04-15

有人可以告诉我,以下 unique_ptr 初始化有什么问题吗?

int main()
{
  unique_ptr<int> py(nullptr);
  py = new int;
  ....
}

g++ -O2 xxx.cc -lm -o xxx -std=c++11 说:

error: no match for ‘operator=’ (operand types are    ‘std::unique_ptr<int>’ and ‘int*’)
   py = new int;
      ^

Doing

unique_ptr<int> px(new int);

工作得很好。


这两段代码的初始化都很好,unique_ptr has 构造函数 http://en.cppreference.com/w/cpp/memory/unique_ptr/unique_ptr对彼此而言nullptr和裸指针。

第一个片段中失败的是分配,那是因为unique_ptr没有operator= http://en.cppreference.com/w/cpp/memory/unique_ptr/operator%3D接受裸指针作为其右侧的重载。它确实接受另一个unique_ptr不过,你可以这样做:

py = unique_ptr<int>{new int};
py = std::make_unique<int>(); // Since c++14

或者你可以看看reset http://en.cppreference.com/w/cpp/memory/unique_ptr/reset它也接受裸指针并且具有或多或少相同的含义:

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

unique_ptr 的初始化有什么问题? 的相关文章

  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 访问私人成员[关闭]

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

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • C 中的异或运算符

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

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif

随机推荐

  • 如何修复传递参数报告 rdlc winform 时本地处理异常未处理的错误?

    我正在做大学项目 在这一点上 他们想要一个真正的证书 为此 我计划通过TextBox要报告的字符串 我在 google 上搜索了如何在 winform 中传递参数 然后我得到了这个一步一步的过程 我执行那个 Step 1 在 Visual
  • java:如何检查整个ArrayList的类型

    我知道如何硬编码一种算法来检查 arraylist 中每个对象的类型 但是有没有其他方法可以一次性检查 ArrayList 的类型 我的意思是我的应用程序只有三种类型的 arraylist 假设我有一个返回 ArrayList 的函数 它的
  • 为什么当我将 js 函数分配给局部变量时会失败?

    在 clojurescript 1 9 89 和 Chrome 50 0 2661 102 中 我可以创建如下日志语句 js console log works 但我无法创建这样的一个 def brokenlog js console lo
  • 在透明 JPanel 上绘画时留下痕迹

    我是一个相对较新的 Java 图形程序员 这是我正在尝试的一个简单程序 这是完整的代码 分为 3 个类 Class 1 import javax swing import java awt import java awt event pub
  • 捆绑包安装在 Nokogiri 停止

    我尝试在 Rails 应用程序上进行捆绑安装 但它卡在 安装 nokogiri 处 错误消息底部的说明显示 Make sure that gem install nokogiri v 1 5 5 succeeds before bundli
  • 用于提前退出循环的功能代码

    如何以函数式风格重构此代码 scala 惯用 def findFirst T objects List T T for obj lt objects if expensiveFunc obj null return obj null asI
  • NSString 地址问题

    我正在尝试将地址打印到字符串 但我在第一个 NSLog 中得到不同的地址 而在第二个 NSLog 中得到相同的地址 那么你能告诉我这是怎么回事吗 这真的让我很困惑 预先非常感谢您的努力 NSString str1 NSString allo
  • VS 2012 调试处理 时出现意外的符号读取器错误

    我在 Visual Studio 2012 中调试程序时遇到问题 当我尝试通过插入一些断点来调试代码时 它们似乎不起作用 当我将鼠标悬停在它们上时 会弹出一条消息 The breakpoint will not currently be h
  • Angular 6 不向 http 请求添加 X-XSRF-TOKEN 标头

    我读了the docs https angular io guide http security xsrf protection以及有关 SO 的所有相关问题 但 Angular CSRF 机制仍然对我不起作用 我无论如何都无法发出自动附加
  • PHP 相当于 JavaScript 的 substring()

    JavaScript 有两个方便的子字符串函数 substring from to and substr start length 这意味着我可以决定 当我从位置 X 开始获取子字符串时 我是否要指定结束的字符串位置或子字符串的长度 一个很
  • Android:无需可怕的(用户)权限即可获取用户ID?

    为了管理用户偏好 目前我正在获取谷歌用户名 实际上是他们在设备上注册的电子邮件地址 并使用它 的散列 作为 用户ID 来区分不同的用户 与所描述的内容相符的东西here https stackoverflow com a 4039018 4
  • 通过蓝牙检测附近的另一台 Android 设备

    好吧 我这里有一个有点奇怪的问题 我正在开发一款 Android 游戏 我希望 Android 手机能够检测到彼此的存在 搜索其他玩家的设备将知道其他玩家设备的蓝牙 MAC 地址 来自游戏数据库 但是设备不会配对 并且设备不会处于可发现模式
  • linux:禁用使用环回并通过一个组件的 2 个 eth 卡之间的线路发送数据[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个带有 2 个 eth 卡的计算机 通过跳线连接 从第一个到第二个的直接以太网电缆 Linux已安装 我想从第一个网卡向第二个网卡发送数据 我想
  • 是否可以替换 64 位编码图像中的颜色?

    有没有办法获取 64 进制字符串 例如 copyIcon background url data image png base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8 9hAAAAW0lEQV
  • Windows 8 桌面上的 Chrome 浏览器:触摸支持错误

    Windows 8 桌面上的 Chrome 浏览器 版本 23 0 1271 97 被错误地识别为支持触摸事件 实际上它是一个桌面 也就是说 它不支持触摸事件 请参阅 Modernizr Touch 测试示例 http modernizr
  • IE8 中使用 Fancybox 的 jQuery 问题

    我最近收购了一个旧网站 我们谈论的是表格 图像地图 凡是你能想到的 我被要求将 Flash 画廊的旧链接放入灯箱中 我只是用了一个javascript openLightbox 在画廊链接 右上角 上 我知道我知道 但是这看起来并不不合时宜
  • tcp_max_syn_backlog 和 somaxconn 有什么区别?

    我一直在阅读一些关于 Linux 上的 TCP 实现的文章 我很困惑 它们之间有什么区别net ipv4 tcp max syn backlog and net core somaxconn和backlog作为参数传递给listen 系统调
  • 在Excel中通过VBA调用COM加载项

    我有一个用 VSTO 编写的 COM 加载项 我想使用 VBA 宏来调用它 对于加载项 我需要启动它 输入一些文本 自动 然后运行应用程序 该加载项都是按钮 我无法轻松访问代码 因为其中一些代码是加密的 它是第三方 遗憾的是 当单击此加载项
  • 如何隐藏我的源代码以免被复制

    最近有人通知我 我的网站被复制了 当我查看他给我的链接时 我发现除了徽标和文本之外 该网站与我的网站相同 有没有办法隐藏我的代码 或者使我的页面无法右键单击 我在一些网站上看到 如果您访问http example com images ht
  • unique_ptr 的初始化有什么问题?

    有人可以告诉我 以下 unique ptr 初始化有什么问题吗 int main unique ptr