如何将 unique_ptr 的向量声明为类数据成员?

2024-04-01

我想要一个 unique_ptr 的向量作为我正在创建的类的成员。

class Foo {
    [...]

private:
    vector<unique_ptr<Bar>> barList;
}

但后来我开始收到来自VS2010编译器:

error C2248: 'std::unique_ptr<_Ty>::operator =' : cannot access private member declared in class 'std::unique_ptr<_Ty>'

以及下面的一些错误行,这些错误行深入探讨了 Microsoft 的实现std::_Copy_impl<>...

我将成员声明更改为

vector<unique_ptr<Bar>>* barList;

它可以编译。但我不禁想,为什么我不能按照自己原本想要的方式去做呢?为了笑,我尝试了这个,效果很好:

vector<Bar> barList;

但现在我失去了便利unique_ptr。我想要我的蛋糕,我也想吃它!


这里的问题是,您的代码在某个地方尝试调用“复制赋值”运算符Foo.

这会导致编译器尝试生成一个复制赋值运算符,该运算符调用 的所有子对象的复制赋值运算符Foo。最终,这导致尝试复制unique_ptr,这是不可能的操作。

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

如何将 unique_ptr 的向量声明为类数据成员? 的相关文章

  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 警告 C4819:如何查找必须保存在 unicode 中的字符?

    我最近通过 VS2010 看到了以下警告 警告 21 警告 C4819 文件包含当前代码页无法表示的字符 936 以 Unicode 格式保存文件以防止数据丢失 c boost vs2010 boost1 49 include boost
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • Eclipse 大纲视图为空

    今天简单说一下 我的OutlineEclipse 中的视图不再显示任何方法或字段 我选择了大纲视图菜单中可用的几个选项来向我展示所有可能的内容 但仍然一无所获 如果我右键单击类编辑器并选择Quick Outline我得到了曾经出现在Outl
  • 应用程序与数据库驻留连接池

    情况 我需要在 python 中连接到 Oracle 数据库时使用连接池 多个 python 应用程序将使用我开发的辅助连接库 我的思考过程 这里我可以想到两种连接池的方式 1 让连接池由数据库本身维护和管理 由 Oracle 的 DRCP
  • 如何根据输入的行数生成html表格? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我必须使用 jquery 创建一个表 表格的行数将由输入框确定 列数是已知的 提交后 会生成一个表 尝试创建一个小提琴 我对 jque
  • 如果类型是事后定义的,则实例化具有不完整类型的类模板是否格式错误?

    这段代码肯定是格式错误的 因为Foo在实例化点之后专门化 template
  • 我应该在

    现在我们有专门的
  • Matlab - 访问多维数组的一部分

    我正在尝试访问 Matlab 中多维数组的一部分 可以这样做 X 2 3 1 20 5 4 7 然而 元素的数量和范围都不是固定的 所以我想提供数组的索引 对于上面的例子 它们是 ind1 2 1 5 4 ind2 3 20 5 7 对于固
  • C++ 使用 std::string、std::wstring 作为缓冲区

    使用 WinAPI 时 您经常会遇到一些获取 LPWSTR 或 LPSTR 作为参数的方法 有时这个指针实际上应该是指向缓冲区的指针 例如 int GetWindowTextW HWND hWnd LPWSTR lpString int n
  • Amazon S3 使 SSL 与 c# sdk 配合使用时出现问题

    我正在使用亚马逊 AWS NET SDK v1 2 1 以下代码在 DNS 查找失败后引发异常myBucket more https这显然不是它应该寻找的 AmazonS3Config S3Config new AmazonS3Config
  • Python读取时出现权限错误

    import os import rarfile file input Password List Directory rarFile input Rar File passwordList open os path dirname fil
  • 打开的连接数以及连接睡眠状态的含义

    我在我的数据库中运行了这个查询 SELECT DB NAME dbid as DBName COUNT dbid as NumberOfConnections loginame as LoginName FROM sys sysproces
  • 防止正文滚动(移动设备、本机浏览器)

    在 Samsung Galaxy S5 S6 的本机浏览器上 以下 CSS 片段 body overflow hidden 不会阻止主体滚动 有解决方法吗 编辑 如下所述 这也可以通过添加溢出 隐藏到 html 标签来完成 但这引入了窗口滚
  • 如何显示MapKit指南针?

    目前 指南针仅在以下情况下才会显示用户应用旋转手势 否则指南针将被隐藏 不过如果能实现我下面的两个愿望就好了 是否可以一直显示指南针 如何使用 Swift 显示 隐藏指南针视图 您可以在 iOS 11 中使用新功能轻松完成此操作MKComp
  • 一维字符串数组被角度资源解析为二维

    来自服务器的以下 JSON 响应 hello world 正在被 ngResource 服务解析为二维数组 myService factory Name function resource return resource site url
  • Perl 中的 my 和 local 有什么区别?

    我看到它们都用在我正在尝试调试的脚本中 但文献还不清楚 有人能为我揭开这个神秘面纱吗 简短的回答是my将变量标记为词法范围内的私有变量 并且local将动态范围内的变量标记为私有 更容易理解my 因为这会创建通常意义上的局部变量 创建了一个
  • 如何设置依赖gradle任务的属性

    我想设置一个 通用 任务 它将为多个平台构建应用程序包 它使用 javafxpackager 该任务的机制适用于创建所有平台捆绑包 但区别在于任务使用的各种属性 我原以为我会为每个平台创建单独的更高级别的任务 在其中设置平台特定的属性 然后
  • 检测ajax请求

    我正在编写自己的 MVC 框架来练习 并且我有一个 Request 类 我想捕获请求的类型并相应地解析数据 无论是 AJAX JSON 调用还是 HTML XML 请求 我目前使用 SERVER HTTP ACCEPT 以及上面使用 var
  • 了解 SQL Profiler 中的读/写次数

    请参阅此 SQL Profiler 视图中指示的 SQL 语句 所有这些事件都来自一台客户端计算机 该计算机正忙于长时间运行的进程 处理数千行 每次处理一行大约需要 6 5 秒 这是 SQL Profiler 显示的注销之间的时间 尽管实际
  • 如何删除python中的文件夹? rmtree 错误

    我最近遇到了这个麻烦 我需要一个功能来删除 Windows 中的整个文件夹 所以我进行了搜索 这就是我得到的 如何使用 Python 删除 删除不为空的文件夹 https stackoverflow com questions 303200
  • 无法从 IEnumerable 转换为 ICollection

    我定义了以下内容 public ICollection
  • 如何将 unique_ptr 的向量声明为类数据成员?

    我想要一个 unique ptr 的向量作为我正在创建的类的成员 class Foo private vector