没有匹配的构造函数来初始化“std::thread”

2024-01-11

我一直在研究一个相当简单的设施:并发for循环构造,它采用输入元素列表、输出向量和从输入元素计算输出元素的函数。

我有这个片段无法编译:

            template<class In, class Out>
            void thread_do(net::coderodde::concurrent::queue<In>& input_queue,
                           Out (*process)(In in),
                           std::vector<Out>& output_vector)
            {
                // Pop the queue, process, and save result.
                ...
            }


                for (unsigned i = 0; i < thread_count; ++i) 
                {
                    thread_vector.push_back(std::thread(thread_do, 
                                                        input_queue,
                                                        process,
                                                        output_vector));
                }

I use -std=c++14.




./concurrent.h:129:45: error: no matching constructor for initialization of 'std::thread'
                    thread_vector.push_back(std::thread(thread_do, 
                                            ^           ~~~~~~~~~~

  

但是,我不知道如何解决它。尝试前置& to the thread_do/追加<In, Out>,但仍无济于事。


这个最小的、完整的示例(提示)向您展示了如何在另一个线程中调用模板成员函数。

#include <thread>

struct X
{

  template<class A, class B> void run(A a, B b)
  {
  }

  template<class A, class B>
  void run_with(A a, B b)
  {
    mythread = std::thread(&X::run<A, B>, this, a, b);
  }

  std::thread mythread;
};

int main()
{
  X x;
  x.run_with(10, 12);
  x.mythread.join();
}

注意std::thread的构造函数无法自动推导模板参数。你必须明确。

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

没有匹配的构造函数来初始化“std::thread” 的相关文章

随机推荐

  • 材质设计 - 操作栏标题和内容的左边距不匹配

    我正在尝试按照以下准则设置屏幕边距布局 指标和关键线 https www google com design spec layout metrics keylines html 具体来说 移动屏幕上的列表内容应具有 72 dp 的边距 并与
  • 替换java中的字符序列

    我正在解析一个结构不良的 rss feed 并且返回的一些数据已 p at在里面 我怎样才能替换所有实例 p p at有一个空格 使用java 我很熟悉 replaceString 类的方法 但我不确定正则表达式的外观 我试过inputSt
  • 实施 Rijndael 解密时是否可以不使用 IV?

    我正在使用 Rijndael 算法实现密文解密 不幸的是 我无法访问数据的加密 并且只提供了密码 用于生成密钥 和算法类型 我没有盐 看起来没问题 也没有静脉注射 现在 我的问题是我是否绝对必须拥有 IV 才能执行解密 我怀疑编写加密的开发
  • 从字符串java中提取日期

    我有一个包含多个日期的字符串 例如 20 Jul 2012 5 11 36 670 UTC PM 20 Jul 2012 5 11 36 683 UTC PM 如何读取该字符串并提取每个日期 我正在使用SimpleDateFormat类来创
  • 将不同层独立部署到 Azure

    假设我有一个应用程序 它分为各个层 演示 业务 数据访问 如何将这些层独立部署到Azure 问题是关于Azure配置 而不是关于应用程序的架构 应用程序通常分为各种角色 每个角色都是 Windows Server 2008 R2 具有已定义
  • CardMedia高度材质-ui

    我正在努力尝试改变 CardMedia 内图像的高度 我设置样式 const style height 32 并将其用于
  • 使用 pip 从 github 的特定分支安装包

    我遇到了一个非常奇怪的问题 我尝试从我的 github fork 中 pip 安装一个包 我过去曾多次这样做过 而且总是有效 这就是我所做的 pip install git https my branch 虽然这在我的本地计算机上工作得很好
  • Python beautifulsoup 抢表

    我正在尝试从此网页中获取表格 我不确定我是否抓住了正确的标签 这是我到目前为止所拥有的 from bs4 import BeautifulSoup import requests page http www airchina com cn
  • 使用 LINQ to SQL 是否有助于防止 SQL 注入

    我正在建立一个公共站点 我首先想到的是 SQL 注入 我正在保存一些文本字段 并使用 linq 来更新 写入数据库 我使用 linq 安全吗 此示例正在创建用户帐户 Data MemberRegistrationDataContext co
  • 如何在 Android 中关闭/销毁 Firebase 引用?

    这是场景 创建了 firebase 引用 Firebase myRef new Firebase url In Main Activity 用户单击按钮导航到其他活动 调用主活动的 onPause 有没有办法销毁这个构造函数 此引用正在创建
  • Base64 编码图像 blob 未在 IE 中显示

    echo img src height 150 这在 firefox safari 和 chrome 中显示的图像效果很好 但在 Internet Explorer 中它显示了一个漂亮的红十字 我认为这是因为编码的原因 尝试更换data i
  • Nlog目标数据库在运行时设置连接信息

    使用 Nlog 和数据库目标 有没有办法在运行时设置连接信息 我记得我的一些同事也做过类似的事情 他找到了这样的答案 http nlog forum 1685105 n2 nabble com DDL for Database Table
  • 溢出:隐藏不适用于正方向的平移

    我最近遇到了一件奇怪的事情overflow hidden 我将它设置为一个元素 然后我想将其中的元素转换为translate 当它向负方向平移时 它将被隐藏 但如果我向正方向平移 它就不会被隐藏 在桌面浏览器中 它并没有真正显示出来 但您可
  • sp_executesql 与 'IN' 语句

    我试图使用 sp executesql 来防止 SQL 2005 中的 SQL 注入 我有一个像这样的简单查询 SELECT from table WHERE RegionCode in X101 B202 但是 当我使用 sp execu
  • 函数后面的const如何优化程序?

    我见过一些这样的方法 void SomeClass someMethod const 这个 const 声明有什么作用 它如何帮助优化程序 Edit 我看到这个问题的第一部分之前已经被问过 BUT 它仍然没有回答第二部分 这将如何优化程序
  • 可编辑文本字段的 UITableView 列表

    我知道这可能不符合 Apple 的 iPhone 人机界面指南 但我想摆脱一级推送视图并拥有可编辑文本字段的列表 此外 我希望当视图出现时键盘从一开始就出现在屏幕上 问题是 当我有超过三个这样的字段时 弹出键盘将覆盖下面的字段 用户无法向下
  • 如果 @Produces 注释缺失,球衣服务会返回什么?

    我开始学习开发安全的网络服务 正如我注意到的 大多数示例都使用以下注释 Consumes 定义输入参数的格式 Produces 定义输出参数的格式 但在实际代码中我看到的方法如下所示 POST Consumes MediaType APPL
  • Chrome扩展,在后台脚本中播放声音

    我想从 Chrome 扩展程序播放声音 但我读到内容脚本无法播放声音 所以我把这段代码放在我的后台脚本中 var audio new Audio alert ogg audio play 但还是没有声音 从 generated backgr
  • 将 ASP.NET 会员资格提供程序与现有用户数据库结合使用

    我目前正在 Net 中重写整个网站 当前网站是用foxpro编写的 并使用自定义逻辑 验证规则和Sql服务器表来存储和验证用户 我想使用会员提供程序 但我有一个主要问题 我不知道如何克服 新站点和旧站点都必须共享用户和凭据 用户必须能够在过
  • 没有匹配的构造函数来初始化“std::thread”

    我一直在研究一个相当简单的设施 并发for循环构造 它采用输入元素列表 输出向量和从输入元素计算输出元素的函数 我有这个片段无法编译 template