std::mutex 作为类成员,并将类对象存储到容器中

2023-11-25

下面是重现该错误的最少代码。

#include <iostream>
#include <mutex>
#include <vector>

class A {
    std::mutex mutex;
    public:
    A(){};
};
int main() 
{
    std::vector<std::pair<std::string,A>> aa;
    A a;
    //aa.push_back(std::make_pair(std::string("aa"),A()));
    //aa.push_back(std::make_pair(std::string("aa"),a));
    aa.push_back(std::make_pair(std::string("aa"),std::move(a)));    
}

下面是错误。

适用于 x64 的 Microsoft (R) C/C++ 优化编译器版本 19.16.27026.1 版权所有 (C) 微软公司。版权所有。

>   C:\Program Files (x86)\Microsoft Visual
> Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xlocale(319):
> warning C4530: C++ exception handler used, but unwind semantics are
> not enabled. Specify /EHsc    C:\Program Files (x86)\Microsoft Visual
> Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\utility(405):
> error C2440: '<function-style-cast>': cannot convert from 'initializer
> list' to '_Mypair'    C:\Program Files (x86)\Microsoft Visual
> Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\utility(405):
> note: No constructor could take the source type, or constructor
> overload resolution was ambiguous
>   ..\examples\json_object\json.cpp(16): note: see reference to function
> template instantiation 'std::pair<std::string,A>
> std::make_pair<std::string,A>(_Ty1 &&,_Ty2 &&)' being compiled            with
>           [
>               _Ty1=std::string,
>               _Ty2=A          ]

类似的错误gcc编译器。 当我删除时std::mutex从类中或不要将对象推上std::vector,然后就可以正常编译了。


根据文档std::mutex.

std::mutex不可复制也不能移动.

自上课以来A包含一个std::mutex多变的mutex,它也不能移动。

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

std::mutex 作为类成员,并将类对象存储到容器中 的相关文章

  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 如何在 postgresql 中进行透视

    我有如下表 我想改造它们 year month week type count 2021 1 1 A 5 2021 1 1 B 6 2021 1 1 C 7 2021 1 2 A 0 2021 1 2 B 8 2021 1 2 C 9 我想
  • SQL Server 字符串与 Null 的连接

    我正在跨字段创建一个计算列 其中一些字段可能为空 问题是 如果这些字段中的任何一个为空 则整个计算列也将为空 我从 Microsoft 文档中了解到 这是预期的 可以通过设置 SET CONCAT NULL YIELDS NULL 关闭 但
  • C# 从 URI 字符串获取文件名

    我有这个方法可以从字符串 URI 中获取文件名 我能做些什么来使它更强大 private string GetFileName string hrefLink string parts hrefLink Split string fileN
  • 为什么 .* 不消耗此 Perl 正则表达式中的整个字符串?

    为什么第一个打印语句没有输出我期望的结果 first This is a test string sec This is a test string 由于 和 都是贪婪的 为什么第一个匹配中的内部 即 内部的 不消耗整个字符串 use st
  • “Decimal”类型的对象不可 JSON 序列化

    由于客户函数错误 Lambda 执行失败 状态为 200 Decimal 类型的对象不可 JSON 序列化 我在以下链接中浏览了所有现有的解决方案 但没有任何对我有用 我究竟做错了什么 Python JSON 序列化 Decimal 对象
  • python asyncio如何读取StdIn并写入StdOut?

    我需要异步读取 StdIn 以获取消息 由 r n 终止的 json 并在处理异步后将更新的消息写入 StdOut 目前我正在同步执行此操作 如下所示 class SyncIOStdInOut def write self payload
  • 在 Linux 上使用 mkdir 作为基于文件的锁定是一个好习惯吗?

    我想在 Linux 上的 perl 程序中快速实现某种锁定 它可以在不同进程之间共享 所以我用了mkdir作为原子操作 它返回1如果该目录不存在并且0如果是的话 我删除了关键部分之后的目录 现在 有人向我指出 这通常不是一个好的做法 独立于
  • Apple Watch OS 2 上是否可以在没有伴随声音的情况下触发触觉反馈

    假设用户没有将手表声音静音 Apple Watch 应用程序是否可以在没有伴随声音的情况下触发触觉反馈 即振动 这与接收由手表自动处理的通知不同 在本例中 我使用手表应用程序调用触觉反馈 像这样 WKInterfaceDevice curr
  • 在WebAPI中绑定抽象动作参数

    我遇到的情况是 我需要将传入的 HTTP POST 请求与正文中的数据绑定到具体类型 具体取决于ProductType数据中的分母 这是我的 Web API 2 操作方法 HttpPost Route public HttpResponse
  • Perl:为什么在循环内声明(我的)变量速度较慢?

    从口译员的视角来看 以下程序之间有什么区别 usr bin perl w use strict for 1 10000000 my jimmy 2 and usr bin perl w use strict my jimmy for 1 1
  • iOS 未收到通过 API 发送的 Firebase 推送通知

    我正在使用 Google 的 Firebase Cloud Messaging 将推送通知发送到我的 iOS 和 Android 应用程序 通过云消息控制台发送的推送通知按预期工作 但是当我通过 API 发送推送通知时 iOS 应用程序仅在
  • jquery:在图像后淡入淡出

    我有一个包含 10 张图像的页面 我想在图像下载后将它们逐个淡入淡出 如何检测图像已加载并准备好显示 我应该循环加载加载的图像 fadeIn 并一旦 fadeIn 等待下一个加载吗 只需在图像上使用 load 事件即可 例如 some im
  • 重写方法上的 Java Class.getMethods() 行为

    在使用 Java 反射编写一个简单的 JSON 序列化程序时 我对 Class getMethods 的行为感到措手不及 如果重写方法的返回类型扩展了被重写方法的返回类型 则 Java Class getMethods 似乎会返回重写方法和
  • 如何使用 Apache Batik 将一张 SVG 图像叠加到另一张 SVG 图像上?

    我有 2 个 SVG 文件需要使用 Batik 进行叠加 第一个文件用作背景图像 大小为 308 像素 x 308 像素 而第二个文件 260 像素 x 260 像素 是必须居中的前景图像 即位于背景图像的中心 我希望将操作结果保存在第三个
  • 为什么全局匿名联合需要声明为静态?

    C 0x 草案 9 5 6 在命名命名空间或全局命名空间中声明的匿名联合应声明为静态的 为什么是这样 假设匿名联合不需要声明为静态 并且编译器遇到这两个翻译单元 预处理后 File1 union int a char b Further c
  • Microsoft Visual Studio:opendir() 和 readdir(),如何实现?

    我之前在我的 Dev cpp 中使用过这种代码 if dh opendir folder false while file readdir dh false do my stuff closedir dh 但现在我正在使用 MSVC 我不知
  • CSS边框颜色分为4种颜色

    有什么方法可以让 CSS 边框的一侧有 4 种不同的颜色吗 我目前有 header border color 88a9eb 我想要有 4 种纯色边框 每种颜色有 25 的分割 这可能吗 我想制作一个完整的版本 中间没有白色的部分 您可以使用
  • 如何从另一个 job2 访问 Hudson job1 工件?

    我们在哈德逊的一个项目中有一份制作工作和一份夜间工作 生产作业需要从特定的夜间构建 作为参数提供 中提取一些工件 谁能帮助我们提示如何实现这一目标 The 复制神器插件似乎能够做到这一点 另一种方法可能是通过获取工件 http server
  • 在 Selenium Chrome 驱动程序中禁用缓存

    我使用 Selenium ChromeDriver 来测量网页的性能 但默认情况下 Chrome 驱动程序缓存是启用的 Option disable application cache现已弃用https code google com p
  • std::mutex 作为类成员,并将类对象存储到容器中

    下面是重现该错误的最少代码 include